标签:抓取 san window ati 检查 amp 网页抓取 实践 string
以爬取《Python 网络爬虫:从入门到实践》一书作者的个人博客评论为例。网址:http://www.santostang.com/2017/03/02/hello-world/
1)“抓包”:找到真实的数据地址
右键点击“检查”,点击“network”,选择“js”。刷新一下页面,选中页面刷新时返回的数据list?callback....这个js文件。右边再选中Header。如图:
其中,Request URL即是真实的数据地址。
在此状态下滚动鼠标滚轮可发现User-Agent。
2)相关代码:
import requests import json headers={‘User-Agent‘:‘Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36‘} link="https://api-zero.livere.com/v1/comments/list?callback=jQuery112405600294326674093_1523687034324&limit=10&offset=2&repSeq=3871836&requestPath=%2Fv1%2Fcomments%2Flist&consumerSeq=1020&livereSeq=28583&smartloginSeq=5154&_=1523687034329" r=requests.get(link,headers=headers) # 获取 json 的 string json_string = r.text json_string = json_string[json_string.find(‘{‘):-2] json_data=json.loads(json_string) comment_list=json_data[‘results‘][‘parents‘] for eachone in comment_list: message=eachone[‘content‘] print(message)
据观察,在真实的数据地址中的offset是页数。
爬取所有页面的评论:
import requests import json def single_page_comment(link): headers={‘User-Agent‘:‘Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36‘} r=requests.get(link,headers=headers) # 获取 json 的 string json_string = r.text json_string = json_string[json_string.find(‘{‘):-2] json_data=json.loads(json_string) comment_list=json_data[‘results‘][‘parents‘] for eachone in comment_list: message=eachone[‘content‘] print(message) for page in range(1,4): link1="https://api-zero.livere.com/v1/comments/list?callback=jQuery112405600294326674093_1523687034324&limit=10&offset=" link2="&repSeq=3871836&requestPath=%2Fv1%2Fcomments%2Flist&consumerSeq=1020&livereSeq=28583&smartloginSeq=5154&_=1523687034329" page_str=str(page) link=link1+page_str+link2 print(link) single_page_comment(link)
参考书目:唐松,来自《Python 网络爬虫:从入门到实践》
标签:抓取 san window ati 检查 amp 网页抓取 实践 string
原文地址:https://www.cnblogs.com/dudududu/p/8832178.html