逆向分析爬取动态网页

在确认网页是动态网页后,需要获取从网页响应中由JavaScript动态加载生成的信息,在谷歌浏览器中爬取今日头条首页的信息,步骤如下。

1. “F12”键打开今日头条首页的网页调试工具.

逆向分析爬取动态网页_第1张图片

2. 点击“Network”选项卡后,发现有很多响应,XHR是Ajax中的概念,表示XML-HTTP-request,一般javascript加载的文件隐藏在JS或者XHR。通过查找发现,今日头条首页各个模块的新闻信息在XHR的Preview中有需要的信息,但是XHR中有很多无用的链接,然后随便单击一个Name查看Preview信息。

逆向分析爬取动态网页_第2张图片

逆向分析爬取动态网页_第3张图片

 

假设需要爬取的是24小时热闻的信息,则步骤如下。

1. 找到的“realtime_news”。

逆向分析爬取动态网页_第4张图片

2. 在Headers头部信息中找到URL的信息。

逆向分析爬取动态网页_第5张图片

3. 打开URL网址信息,找到需要爬取的信息。

逆向分析爬取动态网页_第6张图片

 

爬取今日头条首页动态网页的24小时热闻内容,代码如下:

>>> import requests

>>> import json

>>> url = 'https://www.toutiao.com/api/pc/realtime_news/'

>>> return_data = requests.get(url).text#在需要爬取的URL网页进行HTTP请求

>>> data = json.loads(return_data)    #对HTTP响应的数据JSON化

>>> news = data['data']             #索引到需要爬取的内容信息

>>> for n in news:                 #对索引出来的JSON数据进行遍历和提取

...   title = n['title']

...   image_url = n['image_url']

...   open_url = n['open_url']

...   print(open_url,title,image_url)

...

/group/6539837582170128904/ 一审宣判在即 朴槿惠向法院递交亲笔信说了这些 //p1.pstatp.com/list/240x240/75770009240d066332a1

/group/6539870371166814727/ 俄前间谍女儿被曝昏迷期间 社交平台曾被登录过 //p3.pstatp.com/list/240x240/71f80010fe4139162267

/group/6539914964537180680/ 白宫“头号泄密者”原来是她!口无遮拦语出惊人屡遭批 //p9.pstatp.com/list/240x240/75780008c711e238b80c

/group/6539854955312841229/ 副省长受贿1.25亿,其中8000万为还债 //p9.pstatp.com/list/240x240/pgc-image/1522678542274ccd90ddbc8

/group/6539893239279780366/ 哥斯达黎加80后逆袭当选总统,成为拉美最年轻国家元首 //p3.pstatp.com/list/240x240/7575000a091252d168e1

/group/6539884627807437320/ 全国多地气温将“大跳水” 局地最高温或下降20℃ //p1.pstatp.com/list/240x240/757800089e71755da1fe

/group/6540017776470262286/ 港媒:“台独”必然被清算 赖清德或被大陆审判通缉 //p3.pstatp.com/list/240x240/71f80011b7818a81923a

/group/6539890804238844429/ 【解局】甘肃官场到底出了什么问题? //p1.pstatp.com/list/240x240/pgc-image/1522686954625922db43187

你可能感兴趣的:(逆向分析爬取动态网页)