首页 > 其他分享 >Scrapy爬取高清壁纸

Scrapy爬取高清壁纸

时间:2024-07-13 15:25:33浏览次数:15  
标签:url scrapy 爬取 item Scrapy import 壁纸 class wallpapers

  • 创建一个scrapy项目
  • 编写主程序文件代码
  • 配置settings文件
  • 编写pipelines文件代码

目标地址:Desktop wallpapers hd, free desktop backgrounds

界面显示

1.创建一个scrapy项目

scrapy startproject wallpapers

进入到项目里

cd + 项目路径

创建CrawlSpider

scrapy genspider -t crawl 爬虫名 (allowed_url)
scrapy genspider -t crawl wallpaper wallpaperscraft.com

创建一个窗口

code .

2.编写wallpaper.py文件

import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule


class Wallpaper3Spider(CrawlSpider):
    name = "wallpaper"
    allowed_domains = ["wallpaperscraft.com"]
    start_urls = ["https://wallpaperscraft.com"]

#将下一页的xpath放到rules里,爬取每一页的壁纸
    rules = (Rule(LinkExtractor(restrict_xpaths="//ul[@class='pager__list']/li[@class='pager__item'][2]/a[@class='pager__link']"), callback="parse_item", follow=True),)

    def parse_item(self, response):
        image_url_300_168 = response.xpath("//div[@class='wallpapers wallpapers_zoom wallpapers_main']/ul/li/a/span/img/@src").extract()
        #修改壁纸的大小 
        image_url_1280_720 = []
        for url in image_url_300_168:
            new_url = url.replace('300x168', '1280x720')
            image_url_1280_720.append(new_url)

        name = response.xpath("//span[@class='wallpapers__info'][2]/text()").extract()

        yield {
            "images_url":image_url_1280_720,
            "names":name
        }    

网页首页的壁纸默认是300x168,想要1280x720的效果,可以将src修改成1280x720

3.配置settings.py文件

添加useragent,把robot协议注释,每爬取一页等待2秒,打开管道,设置图片保存路径

4.编写pipeline.py文件

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html


# useful for handling different item types with a single interface
from itemadapter import ItemAdapter
import re
from scrapy.http.request import Request
class Wallpapers2Pipeline:
    def process_item(self, item, spider):
        return item
from scrapy.pipelines.images import ImagesPipeline
class MyImagePipeline(ImagesPipeline):
    def get_media_requests(self, item, info):
        for url in item["images_url"]:
            yield Request(url)
    
    def file_path(self, request, response=None, info=None, *, item=None):
        获得图片url的索引位置
        index = item["images_url"].index(request.url)
        #将名字与图片对应
        name = item["names"][index]
        return f"{re.sub(",","_",name)}.jpg"

5.运行程序

新建一个begin文件。执行下面代码

from scrapy.cmdline import execute

execute("scrapy crawl wallpaper3".split())

成功爬取

标签:url,scrapy,爬取,item,Scrapy,import,壁纸,class,wallpapers
From: https://blog.csdn.net/qq_39000057/article/details/140319872

相关文章

  • 可视化课设总结(星巴克网页爬取信息,百度地图网页版爬取信息,百度地图api,pyecharts库,pyth
    一、引言       本博客是本人是基于本人可视化课设所做的总结,其中有些过程的实现可能并不是最优的实现方法,有些实现效果也因为本人的实力有限,并不能达到预期的效果,所以也欢迎大家指点和改良。(刚考完期末回家,终于有时间把这个课设写个博客了,虽然这课设是明天截至的,我今......
  • python爬虫案例——5行代码爬取音乐资源
    都2024年了,不会还有人在花钱用VIP下载音乐吧~每天一个小妙招,教你5行代码轻松白嫖资源小白须知电脑需配备python解释器、安装一款编程软件,例如VisualStudioCode、pycharm等VisualStudioCode官网:https://code.visualstudio.com/pycharm社区版:https://www.jetbrains.com......
  • Python Selenium+cookie+XPATH爬取数据
    以某科研基金信息平台为例,写了一个基于selenium的web自动化爬虫。不带验证码防反爬以及代理ip池,是最基础的自动化工具爬虫。一、首先,此平台需要登录后才能正常访问,否则数据不全,因此需要登录后获取cookie,以便selenium能够以登录状态运行1.F12打开开发者工具,找到network(网络),在登录......
  • 多进程优化顶点小说爬虫:加速爬取速度的深度优化策略
    顶点小说进阶(多进程+协程)建议:看之前可以先看我之前发布的文章(异步优化与数据入库:顶点小说爬虫进阶实战)这篇文章基于上篇文章:进行了多进程处理,大大加快了爬取速度案例:顶点小说完善(多进程)优化思路:导包:frommultiprocessingimportPool对于每一页的所有小说采用一个进程,建......
  • 使用Python下载Bing每日一图并设置为壁纸
    简介Bing搜索引擎每天都会展示一张精美的图片,这些图片不仅美丽,而且常常包含有趣的信息。想象一下,每天打开电脑,都能看到这样的美景,是不是很棒呢?本文将介绍如何使用Python脚本自动化下载Bing每日一图,并将其设置为我们的桌面壁纸。环境准备在开始之前,请确保你的计算机上安装了Pyth......
  • python爬虫——爬取12306火车票信息
    前提准备:requests、pandas、threading等第三方库的导入(未下载的先进行下载)导入库代码fromthreadingimportThread#多线程库importrequestsimportpandasaspdimportjson#json库完整步骤1.在网页找到需要的数据(1)任意输入出发地——目的地——日期,点击......
  • 免费的壁纸API
    最近在给EasyDesktop增加背景的功能,考虑自己在服务器上部署壁纸,维护成本比较高,就找了几个免费的壁纸接口,体验还不错,这里简单记录一下.1.Bing壁纸API地址是:https://peapix.com/api使用起来比较简单,直接用fetch方法即可回去当日的bing壁纸列表,返回结构如下:[{......
  • Python网络爬虫:Scrapy框架的全面解析
    Python网络爬虫:Scrapy框架的全面解析一、引言        在当今互联网的时代,数据是最重要的资源之一。为了获取这些数据,我们经常需要编写网络爬虫来从各种网站上抓取信息。Python作为一种强大的编程语言,拥有许多用于网络爬虫的工具和库。其中,Scrapy是一个功能强大且灵......
  • 简单爬虫案例——爬取快手视频
    网址:aHR0cHM6Ly93d3cua3VhaXNob3UuY29tL3NlYXJjaC92aWRlbz9zZWFyY2hLZXk9JUU2JThCJTg5JUU5JTlEJUEy找到视频接口:视频链接在photourl中 完整代码:importrequestsimportreurl='https://www.kuaishou.com/graphql'cookies={'did':'web_9e8cfa4403......
  • 【Scrapy】 Scrapy 爬虫框架
    准我快乐地重饰演某段美丽故事主人饰演你旧年共寻梦的恋人再去做没流着情泪的伊人假装再有从前演过的戏份重饰演某段美丽故事主人饰演你旧年共寻梦的恋人你纵是未明白仍夜深一人穿起你那无言毛衣当跟你接近                     ......