yield item
if self.offset < 3390:
self.offset += 10
# 每次处理完一页的数据之后 , 重新发送下一页页面请求
# self.offset自增10 , 同时拼接为新的 url , 并调用回调函数 self.parse 处理 Response
yield scrapy.Request(self.url + str(self.offset), callback = self.parse)
第五步:编写管道文件:TencentPipeline 。
import json
class TencentPipeline(object):
# __init__方法是可选的 , 做为类的初始化方法
def __init__(self):
# 创建了一个 tencent.json 文件,用来保存数据
self.filename = open("tencent.json", "wb")
# process_item方法是必须写的 , 用来处理item数据
def process_item(self, item, spider):
text = json.dumps(dict(item), ensure_ascii = False) + ",n"
# 把数据写入到tencent.json 文件中 , 编码为:utf-8
self.filename.write(text.encode("utf-8"))
return item
# close_spider方法是可选的 , 结束时调用这个方法
def close_spider(self, spider):
self.filename.close()
第六步:修改 settings 文件 。
文章插图
在settings.py文件配置里指定刚才编写的管道文件名:TencentPipeline 。
文章插图
下载的数据比较多 , 需要设定一个下载延时时间 , 以免下载的数据不全 。
文章插图
设置爬虫请求的默认头信息 。
第七步:运行爬虫 。
在 dos下切换到目录
D:爬虫_scriptscrapy_projecttencenttencent 下
通过命令运行爬虫 :scrapy crawl tencent
文章插图
文章插图
第八步:查看爬取的结果 。
查看新建的tencent.json 数据文件 。
文章插图
1.2 Scrapy 爬虫案例二
Scrapy 爬虫案例:斗鱼图片下载
案例步骤:
第一步:通过 Fiddler 进行手机抓包 。
通过Fiddler抓包工具 , 可以抓取手机的网络通信 , 但前提是手机和电脑处于同一局域网内(WI-FI或热点) , 然后进行以下设置:
用 Fiddler 对 Android 应用进行抓包的设置:
1、打开 Fiddler 设置(Tools->options) 。
文章插图
2、在 Connections 里设置允许连接远程计算机 , 确认后重新启动 Fiddler。
文章插图
3、在命令提示符下输入 ipconfig 查看本电脑 IP 。
文章插图
4、打开 Android 设备的“设置”->“WLAN” , 找到你要连接的网络 , 进入该网络 。
文章插图
5、在“代理”后面的输入框选择“手动” , 在“代理服务器主机名”后面的输入框输入电脑的 ip 地址 , 在“代理服务器端口”后面的输入框输入 8888 , 然后点击“保存”按钮 。
文章插图
文章插图
6、启动 Android 设备中的浏览器 , 访问网页即可在 Fiddler 中可以看到完成的请求和响应数据 。
文章插图
文章插图
通过抓包 , 我们可以看出 , 请求返回的每页图片数据是一个 json 格式的文件 , 我们找到每页对应的 json 文件即可 。
文章插图
第二步:每页请求返回的json数据分析 。
第 1 页 URL 地址:
http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&offset=0
推荐阅读
- 七种颜色搭配方案,养生茶营销策划方案完整版
- Python爬虫练习:爬取800多所大学学校排名、星级等
- 麻将多少张?
- 大蛇2电影国语完整版免费观看 大蛇2免费完整版在线西瓜
- 7500航班真实情况 7500鬼航班完整版
- Python爬虫案例,腾讯动漫爬虫,步骤超详细解释,源码分析
- 书中自有黄金屋完整诗句?书中自有黄金屋的下一句是什么_1
- 四种Python爬虫常用的定位元素方法对比,你偏爱哪一款?
- Pyppeteer爬虫神器详解
- 破了这几种爬虫加密算法后,我的路更近了「JS逆向3」