经验大分享:scrapy框架爬取糗妹妹网站qiumeimei.com图片

简介: 经验大分享:scrapy框架爬取糗妹妹网站qiumeimei.com图片

1. 创建项目

  scrapy startproject qiumeimei

2. 建蜘蛛文件qiumei.py

  cd qiumeimei

  scrapy genspider qiumei

3. 考虑到只需要下载图片,先在items.py定义字段

?123456import scrapy class QiumeimeiItem(scrapy.Item): # define the fields for your item here like: img_path = scrapy.Field() pass

4. 写蜘蛛文件qiumei.py

?12345678910111213141516171819202122# -- coding: utf-8 --import scrapy from qiumeimei.items import QiumeimeiItemclass QiumeiSpider(scrapy.Spider): name = 'qiumei' # allowed_domains = 【''】 start_urls = 【''】 def parse(self, response): img_url = response.css('.main>p>img::attr(data-lazy-src)').extract() # print(img_url) for url in img_url: # print(url) item = QiumeimeiItem() item【'img_path'】 = url yield item next_url = response.css('.pagination a.next::attr(href)').extract_first() if next_url: yield scrapy.Request(url=next_url,callback=self.parse)

5. 管道文件pipelines.py 这里图片是全部放在了一个文件夹里,在settings.py中定义了一个路径,见下文第6步:

?12345678910111213141516171819202122232425262728import os,scrapyfrom scrapy.pipelines.images import ImagesPipelinefrom qiumeimei.settings import IMAGES_STORE as images_storeclass QiumeimeiPipeline(ImagesPipeline): def get_media_requests(self, item, info): img_path = item【'img_path'】 # print(000) yield scrapy.Request(url=img_path) def item_completed(self, results, item, info): old_name_list = 【x【'path'】 for t, x in results】 old_name = images_store + old_name_list【0】 # print(111) #图片名称 from datetime import datetime i = str(datetime.now()) # print(222) img_path = item【'img_path'】 img_type = img_path.split('.')【-1】 img_name = i【:4】+i【5:7】+i【8:10】+i【11:13】+i【14:16】+i【17:19】+i【20:】 #图片路径 所有图片放在一个文件夹里 # print(333) path = images_store + img_name +'.'+ img_type print(path+' 已下载...') os.rename(old_name,path) return item

6. 设置文件settings.py

?1234567891011USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'# Obey robots.txt rulesROBOTSTXT_OBEY = False #图片路径,会自动创建IMAGES_STORE = './images/' #开启管道ITEM_PIPELINES = { 'qiumeimei.pipelines.QiumeimeiPipeline': 300,}//代码效果参考:http://www.ezhiqi.com/bx/art_3651.html

  已成功:

相关文章
|
2月前
|
数据采集 中间件 Python
Scrapy爬虫:利用代理服务器爬取热门网站数据
Scrapy爬虫:利用代理服务器爬取热门网站数据
|
27天前
|
数据采集 存储 中间件
Scrapy,作为一款强大的Python网络爬虫框架,凭借其高效、灵活、易扩展的特性,深受开发者的喜爱
【6月更文挑战第10天】Scrapy是Python的高效爬虫框架,以其异步处理、多线程及中间件机制提升爬取效率。它提供丰富组件和API,支持灵活的数据抓取、清洗、存储,可扩展到各种数据库。通过自定义组件,Scrapy能适应动态网页和应对反爬策略,同时与数据分析库集成进行复杂分析。但需注意遵守法律法规和道德规范,以合法合规的方式进行爬虫开发。随着技术发展,Scrapy在数据收集领域将持续发挥关键作用。
66 4
|
4天前
|
数据采集 存储 缓存
使用Scrapy进行网络爬取时的缓存策略与User-Agent管理
使用Scrapy进行网络爬取时的缓存策略与User-Agent管理
|
2月前
|
数据采集 存储 JSON
从入门到精通:掌握Scrapy框架的关键技巧
从入门到精通:掌握Scrapy框架的关键技巧
|
1月前
|
数据采集 中间件 调度
Scrapy:高效的网络爬虫框架
Scrapy是Python的网络爬虫框架,用于快速构建和开发爬虫。它提供简单API和全功能环境,包括请求调度、HTML解析、数据存储等,让开发者专注爬虫逻辑。Scrapy工作流程包括发起请求、下载响应、解析数据、处理数据和发送新请求。其核心组件有调度器、下载器、解析器(Spiders)和Item Pipeline,广泛应用于数据挖掘、信息监测、搜索引擎和自动化测试。有效技巧包括合理设置请求参数、编写高效解析器、使用代理和防反爬策略,以及利用中间件。随着大数据和AI的发展,Scrapy在爬虫领域的地位将持续巩固。【6月更文挑战第6天】
31 0
|
2月前
|
数据采集 NoSQL 中间件
python-scrapy框架(四)settings.py文件的用法详解实例
python-scrapy框架(四)settings.py文件的用法详解实例
21 0
|
2月前
|
存储 数据采集 数据库
python-scrapy框架(三)Pipeline文件的用法讲解
python-scrapy框架(三)Pipeline文件的用法讲解
27 0
|
2月前
|
存储 数据采集 JSON
python-scrapy框架(二)items文件夹的用法讲解
python-scrapy框架(二)items文件夹的用法讲解
28 0
|
2月前
|
数据采集 存储 数据处理
Scrapy:Python网络爬虫框架的利器
在当今信息时代,网络数据已成为企业和个人获取信息的重要途径。而Python网络爬虫框架Scrapy则成为了网络爬虫工程师的必备工具。本文将介绍Scrapy的概念与实践,以及其在数据采集和处理过程中的应用。
33 1
|
2月前
|
数据采集 调度 Python
Scrapy爬虫中合理使用time.sleep和Request
Scrapy爬虫中合理使用time.sleep和Request