PythonScrapy爬虫

本项目是为交流学习使用 必须在24小时内删除!!!!

Scrapy爬虫:

1.爬取网站分析 — JSON 的 数据都在XHR

image-20240625173435800

2.下载Scrapy框架

#切记要在cmd 管理员运行
pip install scrapy 

3.创建文件夹 scrapy_dang 及创建爬虫项目

scrapy startproject scrapy_dang (项目名字)

4.创建爬虫文件

4.1cd scrapy_dang\spiders #反正得进入sprides中 #开始创建爬虫文件 dangdang.py


image-20240625175017529

方法
scrapy genspider dangdang(你要创建的文件名字) '你要创建的网页名字 必须用字符串包裹住'
目前你已经创建出爬虫文件了
创建你需要的数据  为他们集成为一个数据结构
  1. 配置访问的操作

    image-20240626112754565

  2. 进入items.py 定义数据结构

image-20240626111252816

  1. 将从API得到的数据传输到数据结构中 最后将数据结构中数据传给Scrapy

image-20240626113657939

并且yield将数据传给scrapy框架后,Pipe会自动指向代码 来保存数据

image-20240626114024985

配置完管道

  1. 真正的打开管道

image-20240626114233162

  1. 在Fetch/XHR中分析JSON:

在滚轮页面出现请求地址后:一层一层拨开他的心

原则:一层一层看 看后面如何访问:{}/[] 两种方式

0.先看第一层 就是第一行就是response 他没有键值只有{} 一个大括号 是一个JSON对象 许多键值

image-20240626110037276

1.response:冒号后为{} 大括号 所以用键值访问

response[‘data’]

image-20240626110316684

data:后又是{} 大括号还是键值访问

response['data']['saleList']

image-20240626110402908

response['data']['saleList']  saleList:后是列表

那么for 访问/[0] 顺序访问

response['data']['saleList'][0]
response['data']['saleList'][0] 又是大括号那么JSON对象键值访问

image-20240626110634491

response['data']['saleList'][0]['mediaList']
response['data']['saleList'][0]['mediaList']后面又是列表 for/[0]访问

image-20240626110756997

response['data']['saleList'][0]['mediaList'][0]
response['data']['saleList'][0]['mediaList'][0]后面又是大括号 键值访问后面

image-20240626110930161

response['data']['saleList'][0]['mediaList'][0]['authorPenname']
  1. 多次发起请求

    逻辑:

    ​ 先保证开始能够运行:----starturl正常配置

    ​ 在每次parse 处理完一页数据后 再次发起请求 但是需要配置下一次需要访问的页号

    image-20240626114819503

        if self.end < 5000:
            next_url = "https://e.dangdang.com/media/api.go?action=mediaCategoryLeaf&promotionType=1&deviceSerialNo=html5&macAddr=html5&channelType=html5&permanentId=20240625093131013189619455017721674&returnType=json&channelId=70000&clientVersionNo=6.8.0&platformSource=DDDS-P&fromPlatform=106&deviceType=pconline&token=&start={}&end={}&category=QCWX&dimension=dd_sale&order=0".format(self.start,self.end)
            self.start += 100
            self.end += 100
            yield scrapy.Request(next_url, callback=self.parse)

ormSource=DDDS-P&fromPlatform=106&deviceType=pconline&token=&start={}&end={}&category=QCWX&dimension=dd_sale&order=0".format(self.start,self.end)
self.start += 100
self.end += 100
yield scrapy.Request(next_url, callback=self.parse)


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值