码迷,mamicode.com
首页 > 编程语言 > 详细

Python开发爬虫之动态网页抓取篇:爬取博客评论数据

时间:2018-04-14 16:26:43      阅读:523      评论:0      收藏:0      [点我收藏+]

标签:抓取   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 网络爬虫:从入门到实践》

 

Python开发爬虫之动态网页抓取篇:爬取博客评论数据

标签:抓取   san   window   ati   检查   amp   网页抓取   实践   string   

原文地址:https://www.cnblogs.com/dudududu/p/8832178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!