您的位置:首页 > 其它

6 浏览器抓包及headers设置(案例一:抓取知乎) jason格式

2018-02-01 17:11 435 查看




翻页后url不变





今日头条url也没有变化翻页



左侧多了



chorm中josonview插件



所以加入不一样的请求头:headers
http://www.zhihu.com/api/v4/people/112
根据经验把api删掉即可打开这个链接



第一个参数固定是url不用指定,后面的参数需要指明。headers字典。
下面是翻页



百度输入python.extend



import requests
import pandas as pd
import time

headers = {
'authorization':'Bearer 2|1:0|10:1513832293|4:z_c0|92:Mi4xUFJOakF3QUFBQUFBa0lLVHVlN2REQ1lBQUFCZ0FsVk5aWTBvV3dBTW4yUk1XX0l2YjNhNlNSUmhmRy1GaDZsWWVR|d45ed089d0c3ca18eff8a3f5bee812db4804d2a13a92b69f124d47b5a82d0292','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3278.0 Safari/537.36','X-UDID':'AGBsMCXoEg2PTrQf77mdwRHSy0xePXc5juQ='
}
url = 'https://www.zhihu.com/api/v4/members/zhong-guo-ke-pu-bo-lan/followers?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset=60&limit=20'

user_data = []
def get_user_data(page):  #爬取几页
for i in range(page):
url = 'https://www.zhihu.com/api/v4/members/excited-vczh/followees?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset={}&limit=20'.format(i*20)
response = requests.get(url, headers=headers).json()['data']
user_data.extend(response) #把response数据添加进user_data
print('正在爬取第%s页' % str(i+1))
time.sleep(1) #设置爬取网页的时间间隔为1秒,爬虫暂停1s,防止被监测到

if __name__ == '__main__':
get_user_data(10)
df = pd.DataFrame.from_dict(user_data)
df.to_csv('users.csv')
截止。

'''
response = requests.get(url,headers = headers).json()['data']

df = pd.DataFrame.from_dict(response) #from_dict函数可以直接把json数据转换
df.to_csv('zhihu.csv')#出现错误,经验告诉是知乎反爬


'''
json是个像字典一样使用的东西。
你看看json返回的东西,是一个字典,取字典的值是怎样取的就怎样取,xpath是取源代码的
代码运行结果如下:

















a选项不一定是当前页面,因为有时候翻页页面地址不变。 
x-requested-with XMLHttpRequest //表明是AJax异步,也就是json格式



range(3) 0,1,2







星号题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: