Python爬虫入门-fiddler抓取手机新闻评论
来源:互联网 发布:linux 文件不保存退出 编辑:程序博客网 时间:2024/06/02 04:09
之前一直都听过抓包,抓包,但是一直没有在手机上抓过包,这次一试,当做是一次小练习,在网上有挺多Fiddler安装和配置的教程的,我也找了一些,大家可以借鉴:
1、Fiddler|Fiddler安装与配置
2、抓包工具Fidder详解(主要来抓取Android中app的请求)
3、使用Fiddler抓到包后分析
之前在安装配置Fiddler的过程中因为使用某国产手机的原因无法使用代理被狠狠坑了一下,在此留个记号。
这次想练习的是今日头条新闻《跳楼产妇聊天记录曝光 丈夫:出事前未察觉她有情绪异常》 此新闻的相关评论信息。可以看到在PC端只是显示几条评论信息,所以就去爬移动端。
打开Fiddler,并且在手机上打开评论信息,不断下拉,可以看到评论会慢慢地加载出来,通过Fiddler的过滤功能,可以看到:
左侧这几条就是我们要找的相关的含有评论信息的链接,右上方是request,右下方是response。从右上上可以看出是正常的get方式的请求,返回的是JSon格式的数据。
这个URL很长,看着很晕,我就把这个URL复制到TXT文件下对比一下:
这个规律还是比较好找的,通过我不断对评论页的下拉,只有最后的offset参数按照20的整数倍发生改变,利用这个规律就可以构建URL进行模拟的请求。当然这个URL太长了可以进行适当的缩减,里面有一些是设备的参数,可以进行删除,然后在浏览器上试一试看能不能返回相关的信息,最后我构建的URL:https://ic.snssdk.com/article/v2/tab_comments/?resolution=640*960&aggr_type=1&count=20&group_id=6462587303142359566&item_id=6462587303142359566&offset={}。
但是在对offset赋值的时候最多只能取到1500,再往后取是没有返回评论信息的结果的,也就是说只能够得到一千多条的评论信息。
接下来就可以进行编写代码了:
toutiao.py:import scrapyimport jsonfrom toutiao_chanfu.items import ToutiaoChanfuItemclass ToutiaoSpider(scrapy.Spider): name = 'toutiao' start_urls = ['https://ic.snssdk.com/article/v2/tab_comments/?resolution=640*960&aggr_type=1&count=20&group_id=6462587303142359566&item_id=6462587303142359566&offset={}'.format(i*20) for i in range(0,76)] def parse(self, response): item=ToutiaoChanfuItem() html=response.text if html: content=json.loads(html) if content: datas=content.get("data") if datas: for data in datas: comment=data.get("comment") if comment: item['user_name']=comment.get("user_name") item['text']=comment.get("text") # print(item['user_name']+':'+item['text']+'\n') yield item
settings.py:SPIDER_MODULES = ['toutiao_chanfu.spiders']NEWSPIDER_MODULE = 'toutiao_chanfu.spiders'MONGO_URI='localhost'MONGO_DB='chanfuissue'HTTPERROR_ALLOWED_CODES = [400]ROBOTSTXT_OBEY = FalseDOWNLOAD_DELAY = 3COOKIES_ENABLED = FalseDEFAULT_REQUEST_HEADERS = { 'Accept': '*/*', 'Accept-Language': 'zh-Hans;q=1, en;q=0.9, zh-Hant;q=0.8, fr;q=0.7, de;q=0.6, ja;q=0.5', 'Host: ic.snssdk.com' 'Proxy-Connection':'keep-alive', 'Cookie':'CNZZDATA1263676333=1053471997-1506224751-%7C1506224751; install_id=15419404350; qh[360]=1; ttreq=1$81cf78bc9e126dbc3f1e1a22789fdc99f9039157; UM_distinctid=15eb20c9b0da-0f7a55db4-3d5b614e-25800-15eb20c9b102e', 'X-SS-Cookie':'CNZZDATA1263676333=1053471997-1506224751-%7C1506224751; install_id=15419404350; qh[360]=1; ttreq=1$81cf78bc9e126dbc3f1e1a22789fdc99f9039157; UM_distinctid=15eb20c9b0da-0f7a55db4-3d5b614e-25800-15eb20c9b102e', 'Connection':'keep-alive', 'User-Agent':'News/6.3.4 (iPhone; iOS 7.0.3; Scale/2.00)',}ITEM_PIPELINES = { 'toutiao_chanfu.pipelines.MongoPipeline': 200,}
成功运行后是这样的:
前几次运行的时候都会出现400、502的状态码也不知是哪里抽风,后面直接卡死(伤不起的电脑啊)后面我索性直接掐掉重新运行Pycharm。
最后的结果是存储在Mongodb数据库:
一共共抓取到了1400多条的评论信息。
- Python爬虫入门-fiddler抓取手机新闻评论
- python爬虫(抓取百度新闻列表)
- Python爬虫:抓取新浪新闻数据
- 第一个python爬虫 抓取新浪新闻
- 抓取腾讯新闻评论
- python爬虫 抓取图片入门
- Fiddler抓取手机包
- fiddler抓取手机请求
- 网易新闻评论爬虫(python+selenium+PhantomJS)
- Python爬虫:抓取手机APP数据
- python爬虫抓取新华网新闻并自动生成word文档
- 第五课 Python爬虫抓取新浪新闻的内容页
- 网络爬虫框架scrapy介绍及应用——抓取新浪新闻的标题内容评论
- 【Python】爬虫入门--抓取网站图片
- Fiddler抓取手机http请求
- Fiddler抓取手机APP数据包
- Fiddler抓取手机APP数据包
- 使用Fiddler抓取手机数据包
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L. The Heaviest Non-decreasing Subsequence Problem (LIS)
- Android编译Lame的全平台so库方案2,并实现转码mp3
- ES6(三: 变量的解构赋值)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L题 非递减权值最大
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 J. Minimum Distance in a Star Graph
- Python爬虫入门-fiddler抓取手机新闻评论
- MAC下升级MySQL数据库
- 关于python文件 I/O 操作 与异常
- 卷积神经网络详解
- 动态规划——开餐馆
- 大数据的大价值:大数据五大成功案例深度解析
- java中几个概念的总结
- 包
- EasyNVR RTSP摄像机转HLS直播服务器中使用Onvif协议控制预置位