Scrapy 爬虫完整案例-基础篇( 二 )


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 文件 。

Scrapy 爬虫完整案例-基础篇

文章插图
 
在settings.py文件配置里指定刚才编写的管道文件名:TencentPipeline 。
Scrapy 爬虫完整案例-基础篇

文章插图
 
下载的数据比较多 , 需要设定一个下载延时时间 , 以免下载的数据不全 。
Scrapy 爬虫完整案例-基础篇

文章插图
 
设置爬虫请求的默认头信息 。
第七步:运行爬虫 。
在 dos下切换到目录
D:爬虫_scriptscrapy_projecttencenttencent 下
通过命令运行爬虫 :scrapy crawl tencent
Scrapy 爬虫完整案例-基础篇

文章插图
 

Scrapy 爬虫完整案例-基础篇

文章插图
 
第八步:查看爬取的结果 。
查看新建的tencent.json 数据文件 。
Scrapy 爬虫完整案例-基础篇

文章插图
 
1.2 Scrapy 爬虫案例二
Scrapy 爬虫案例:斗鱼图片下载
案例步骤:
第一步:通过 Fiddler 进行手机抓包 。
通过Fiddler抓包工具 , 可以抓取手机的网络通信 , 但前提是手机和电脑处于同一局域网内(WI-FI或热点) , 然后进行以下设置:
用 Fiddler 对 Android 应用进行抓包的设置:
1、打开 Fiddler 设置(Tools->options) 。
Scrapy 爬虫完整案例-基础篇

文章插图
 
2、在 Connections 里设置允许连接远程计算机 , 确认后重新启动 Fiddler。
Scrapy 爬虫完整案例-基础篇

文章插图
 
3、在命令提示符下输入 ipconfig 查看本电脑 IP 。
Scrapy 爬虫完整案例-基础篇

文章插图
 
4、打开 Android 设备的“设置”->“WLAN” , 找到你要连接的网络 , 进入该网络 。
Scrapy 爬虫完整案例-基础篇

文章插图
 
5、在“代理”后面的输入框选择“手动” , 在“代理服务器主机名”后面的输入框输入电脑的 ip 地址 , 在“代理服务器端口”后面的输入框输入 8888 , 然后点击“保存”按钮 。
Scrapy 爬虫完整案例-基础篇

文章插图
 

Scrapy 爬虫完整案例-基础篇

文章插图
 
6、启动 Android 设备中的浏览器 , 访问网页即可在 Fiddler 中可以看到完成的请求和响应数据 。
Scrapy 爬虫完整案例-基础篇

文章插图
 

Scrapy 爬虫完整案例-基础篇

文章插图
 
通过抓包 , 我们可以看出 , 请求返回的每页图片数据是一个 json 格式的文件 , 我们找到每页对应的 json 文件即可 。
Scrapy 爬虫完整案例-基础篇

文章插图
 
第二步:每页请求返回的json数据分析 。
第 1 页 URL 地址:
http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&offset=0


推荐阅读