经验大分享: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月前
|
数据采集 存储 中间件
高效数据抓取:Scrapy框架详解
高效数据抓取:Scrapy框架详解
|
1月前
|
数据采集 存储 XML
Scrapy框架实现数据采集的详细步骤
本文介绍了使用Scrapy框架从宁波大学经济学院网站爬取新闻或公告详情页内容的过程,包括创建Scrapy项目、编写爬虫规则、提取所需信息,并最终将数据存储到Excel文件中的方法和步骤。
Scrapy框架实现数据采集的详细步骤
|
24天前
|
数据采集 中间件 调度
Scrapy 爬虫框架的基本使用
Scrapy 爬虫框架的基本使用
|
1月前
|
数据采集 存储 中间件
Python进行网络爬虫:Scrapy框架的实践
【8月更文挑战第17天】网络爬虫是自动化程序,用于从互联网收集信息。Python凭借其丰富的库和框架成为构建爬虫的首选语言。Scrapy作为一款流行的开源框架,简化了爬虫开发过程。本文介绍如何使用Python和Scrapy构建简单爬虫:首先安装Scrapy,接着创建新项目并定义爬虫,指定起始URL和解析逻辑。运行爬虫可将数据保存为JSON文件或存储到数据库。此外,Scrapy支持高级功能如中间件定制、分布式爬取、动态页面渲染等。在实践中需遵循最佳规范,如尊重robots.txt协议、合理设置爬取速度等。通过本文,读者将掌握Scrapy基础并了解如何高效地进行网络数据采集。
126 6
|
1月前
|
存储 中间件 数据处理
深入解读 Scrapy 框架原理与源码
深入解读 Scrapy 框架原理与源码
33 1
|
2月前
|
数据采集 中间件 调度
当当网数据采集:Scrapy框架的异步处理能力
当当网数据采集:Scrapy框架的异步处理能力
|
2月前
|
数据采集 前端开发 Shell
Scrapy框架简介
Scrapy框架简介
|
2月前
|
数据采集 存储 缓存
使用Scrapy进行网络爬取时的缓存策略与User-Agent管理
使用Scrapy进行网络爬取时的缓存策略与User-Agent管理
|
4月前
|
数据采集 存储 数据处理
Scrapy:Python网络爬虫框架的利器
在当今信息时代,网络数据已成为企业和个人获取信息的重要途径。而Python网络爬虫框架Scrapy则成为了网络爬虫工程师的必备工具。本文将介绍Scrapy的概念与实践,以及其在数据采集和处理过程中的应用。
50 1
|
4月前
|
数据采集 中间件 Python
Scrapy爬虫:利用代理服务器爬取热门网站数据
Scrapy爬虫:利用代理服务器爬取热门网站数据