零基础scrapy项目结构简介-python批量获取百度图片到本地

本文介绍了如何从零开始使用Scrapy框架创建项目,批量获取并下载百度图片。内容包括Scrapy项目的创建步骤、分析目标URL、查看JSON响应结果以及如何在Scrapy中处理数据,最终将图片保存到本地。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

scrapy 批量获取百度图片到本地

本篇主要分享如何通过scrapy框架根据关键字获取到百度图片所展示的所有图片

scrapy创建一个新项目

1. 安装scrapy

配置合适的python环境,本篇主要用到Anaconda环境,Anaconda下载地址:
官方下载
清华镜像
安装scrapy:conda install scrapy 或者 pip3 install scrapy 或者 pip install scrapy,注意pippip3的区别

2. 创建scrapy新项目

配置好scrapy环境后,可用scrapy支持的命令创建一个scrapy项目:scrapy startproject baidu_crawler
此时在当前目录下会自动创建一个名为baidu_crawler的文件夹,下面是我的文件目录:
scrapy新项目的目录

然后到baid_crawler目录下,创建一个爬虫服务:scrapy genspider image_spider image.baidu.com
可以看到spiders目录下创建了image_spider.py文件,且代码中已有初始的配置
image_spider.py文件初始代码
其中 name是爬虫服务的名称,scrapy引擎主要通过服务名对爬虫服务进行控制,allowed_domains是本服务需要访问的域名,start_urls是爬虫服务将会进行抓取的网页链接(百度图片这个链接可以再修改,下面再讲)

3. scrapy项目结构

下面介绍下每个文件的功能:
![scrapy爬虫框架的主要项目结构](https://img-blog.csdnimg.cn/20200827134827659.png#pic_center)
文件名 主要功能
scrapy.cfg 整个项目的配置文件
settings.py 爬虫服务的配置文件,主要可以调整并发度、管理中间件优先级、pipeline优先级
image_spider.py 爬取任务的主要文件,发出请求和对响应结果进行解析等任务在此完成
items.py 定义所需数据项,数据项主要用于组件之间的数据传递,例如从spider到pipeline之间的数据传递
pipelines.py 对获取到的数据进行操作,例如存储到数据库、图片下载等操作都可以在此完成
middlewares.py 项目中间件文件,主要可以用来配置用户代理、定义代理等等

批量获取百度图片

1.分析目标URL

在 image_spider.py中定义请求,上面提到start_urls是爬虫服务将会进行抓取的网页链接

如果直接使用http://image.baidu.com/,则返回的响应结果为HTML,并且因为百度图片是滑动动态刷新的,所以只通过发送该请求可能无法获取到所有的百度图片。

有多种方式可以获取到百度图片:
1.构造请求获取到HTML,解析HTML来获取图片,主要可用BeautifulSoup来解析HTML来获取图片信息
2.构造请求获取到JSON格式的响应结果,直接解析JSON来获得图片信息

下面是一种根据关键字获取百度图片的URL形式:
http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&queryWord=猫&word=猫&pn=1

其中queryWord和word是当前想要查询的关键字,pn是当前页数,这种方式构造的URL请求获取到的图片,一页有30张图片

这种请求方式返回的响应结果是JSON格式的图片数据

2.查看响应结果

{
   
   
  "queryEnc": "%C3%A8",
  "queryExt": "猫",
  "listNum": 1673<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值