本项目是为交流学习使用 必须在24小时内删除!!!!
Scrapy爬虫:
1.爬取网站分析 — JSON 的 数据都在XHR
2.下载Scrapy框架
#切记要在cmd 管理员运行
pip install scrapy
3.创建文件夹 scrapy_dang 及创建爬虫项目
scrapy startproject scrapy_dang (项目名字)
4.创建爬虫文件
4.1cd scrapy_dang\spiders #反正得进入sprides中 #开始创建爬虫文件 dangdang.py
方法
scrapy genspider dangdang(你要创建的文件名字) '你要创建的网页名字 必须用字符串包裹住'
目前你已经创建出爬虫文件了
创建你需要的数据 为他们集成为一个数据结构
-
配置访问的操作
-
进入items.py 定义数据结构
- 将从API得到的数据传输到数据结构中 最后将数据结构中数据传给Scrapy
并且yield将数据传给scrapy框架后,Pipe会自动指向代码 来保存数据
配置完管道
- 真正的打开管道
- 在Fetch/XHR中分析JSON:
在滚轮页面出现请求地址后:一层一层拨开他的心
原则:一层一层看 看后面如何访问:{}/[] 两种方式
0.先看第一层 就是第一行就是response 他没有键值只有{} 一个大括号 是一个JSON对象 许多键值
1.response:冒号后为{} 大括号 所以用键值访问
response[‘data’]
data:后又是{} 大括号还是键值访问
response['data']['saleList']
response['data']['saleList'] saleList:后是列表
那么for 访问/[0] 顺序访问
response['data']['saleList'][0]
response['data']['saleList'][0] 又是大括号那么JSON对象键值访问
response['data']['saleList'][0]['mediaList']
response['data']['saleList'][0]['mediaList']后面又是列表 for/[0]访问
response['data']['saleList'][0]['mediaList'][0]
response['data']['saleList'][0]['mediaList'][0]后面又是大括号 键值访问后面
response['data']['saleList'][0]['mediaList'][0]['authorPenname']
-
多次发起请求
逻辑:
先保证开始能够运行:----starturl正常配置
在每次parse 处理完一页数据后 再次发起请求 但是需要配置下一次需要访问的页号
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)