首页 > 其他分享 >scrapy爬取桌面壁纸

scrapy爬取桌面壁纸

时间:2024-11-13 09:15:31浏览次数:3  
标签:桌面壁纸 img url self response 爬取 scrapy link page

【桌面壁纸】电脑桌面壁纸图片大全_高清壁纸背景图-ZOL桌面壁纸

import os
import scrapy
from fake_useragent import UserAgent

class ZolMeinvSpider(scrapy.Spider):
    name = 'zol_meinv'
    base_url = 'https://desk.zol.com.cn'
    start_url = base_url + '/meinv/'

    def start_requests(self):
        ua = UserAgent()
        yield scrapy.Request(self.start_url, headers={'User-Agent': ua.random}, callback=self.parse, meta={'page_number': 1}, dont_filter=True)

    def parse(self, response):
        # 提取图片链接
        img_links = response.css('.pic-list2 img::attr(src)').getall()
        for img_link in img_links:
            yield scrapy.Request(img_link, callback=self.download_image, meta={'img_link': img_link}, priority=100)

        # 处理翻页
        current_page = response.css('span.active::text').get()
        next_page = response.css('a.next::attr(href)').get()
        prev_page = response.css('a.prev::attr(href)').get()

        if prev_page:
            prev_page_url = self.base_url + prev_page
            yield scrapy.Request(prev_page_url, headers={'User-Agent': UserAgent().random}, callback=self.parse, meta={'page_number': int(current_page) - 1}, dont_filter=True)

        if next_page:
            next_page_url = self.base_url + next_page
            yield scrapy.Request(next_page_url, headers={'User-Agent': UserAgent().random}, callback=self.parse, meta={'page_number': int(current_page) + 1}, dont_filter=True)

    def download_image(self, response):
        img_link = response.meta['img_link']
        # 指定存储图片的目录
        img_dir = 'downloaded_images'
        if not os.path.exists(img_dir):
            os.makedirs(img_dir)
        file_name = os.path.join(img_dir, img_link.split('/')[-1])
        with open(file_name, 'wb') as f:
            f.write(response.body)

输出结果

标签:桌面壁纸,img,url,self,response,爬取,scrapy,link,page
From: https://blog.csdn.net/qq_68809241/article/details/143647726

相关文章

  • Python爬虫实战案例(爬取图片)
    爬取图片的信息爬取图片与爬取文本内容相似,只是需要加上图片的url,并且在查找图片位置的时候需要带上图片的属性。这里选取了一个4K高清的壁纸网站(彼岸壁纸https://pic.netbian.com)进行爬取。具体步骤如下:第一步依然是进入这个页面,这个壁纸网站分为好几种类型的壁纸图片,......
  • 使用python爬取百度热搜
    文章目录前言一、requests是什么?二、使用步骤1.引入库2.获取页面数据3.使用xpath解析页面,获取词条列表信息4.获取指定元素信息,添加到dataframe中5.保存数据到指定的文件或数据库总结前言本文介绍使用request获取百度热搜的简单功能一、requests是什么?Pythonreq......
  • 爬取b站番剧数据
    这就是b站番剧页面,然后f12进入开发者模式找出url再观察第二页的url和第一页有何区别,发现page=页数,可以通过这个实现翻页,有不懂的欢迎来问,一起交流,新人感谢支持,也欢迎给出优化方案参考代码:importrequestsimportjsonimportpymongomongo_conn=pymongo.MongoClient(......
  • Python图片链接爬虫爬取图片代码
    importrequestsurl=‘https://desk-fd.zol-img.com.cn/t_s960x600c5/g5/M00/05/0F/ChMkJ1erCYqIQptxAAPESMfBQZoAAUU6QB4oVwAA8Rg091.jpg’headers={‘user-agent’:‘Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/1......
  • 在Scrapy爬虫中应用Crawlera进行反爬虫策略
    在互联网时代,数据成为了企业竞争的关键资源。然而,许多网站为了保护自身数据,会采取各种反爬虫技术来阻止爬虫的访问。Scrapy作为一个强大的爬虫框架,虽然能够高效地抓取网页数据,但在面对复杂的反爬虫机制时,仍然需要额外的工具来增强其反爬能力。Crawlera就是这样一款能够协助......
  • Python 爬取大量数据如何并发抓取与性能优化
    Python并发抓取与性能优化在进行网络爬虫开发时,爬取大量数据可能非常耗时。尤其是在处理许多网页或API请求时,逐个请求速度会非常慢。为了解决这个问题,我们可以通过并发抓取提高爬取效率。同时,通过性能优化来进一步减少耗时和资源占用,使爬虫更高效。本篇文章将带大家了解......
  • 使用Python中的DrissonPage库爬取小说网站并保存章节内容(bqg)
    前言在这个教程中,我们将学习如何使用Python结合DrissionPage库来自动化浏览器操作,从而从一个小说网站(bqg)上抓取小说的章节链接和内容,并将这些内容保存到本地文件。本文将详细介绍整个过程,并提供完整的代码示例。准备工作在开始之前,请确保已经安装了以下Python库:driss......
  • Python爬取豆瓣音乐top250
    importrequestsfrombs4importBeautifulSoupimportpandasaspdimporttimedefcrawl_douban_music_top250():data=[]base_url="https://music.douban.com/top250"foriinrange(0,250,25):url=f"{base_url}?start={......
  • 使用python爬虫爬取热门文章分析最新技术趋势
    本文借助爬虫来分析哪些技术正在快速发展,哪些问题在开发者中引起广泛讨论,从而为学习和研究提供重要参考。使用python爬虫分析最新技术趋势一、爬取目标二、代码环境2.1编程语言2.2三方库2.3环境配置三、代码实战3.1接口分析3.2接口参数分析接口地址请求方法描述......
  • webMagic静态页面的爬取
     一:javamaven依赖:<dependency><groupId>us.codecraft</groupId><artifactId>webmagic-core</artifactId><version>0.7.4</version></dependency><dependency><groupId>us.codecraft</grou......