暂无分类
暂无标签
发布于2021-01-15 21:03 阅读(955) 评论(0) 点赞(14) 收藏(5)
0
1
2
3
4
5
6
7
以下将从处理cookie的两种方式来分析爬取雪球网的新闻数据,
一个是手动处理cookie,到源码去抓包,找到他的request header里面的cookie,复制出来封装到headers内;
另一个是自动处理cookie,引入模块requests的session,这个方法和requests一样可以发送get和post请求,但是他在发送请求的时候自动携带cookie
那么什么情况下我们爬取数据需要用到cookie呢?
首先我们要知道cookie他是服务器记录客户端的一种状态,有一些网站的爬取,需要先通过验证信息才可以进去主页面,如果我们在爬取大量数据的情况下,可能需要反复登录才可以爬取,这样效率不高,下面通过简单分析爬取雪球网的新闻标题来区分两种爬取的异同
我们先分析网站是不是ajax动态获取数据,通过xhr我们看到每次向下拉,xhr总是有新的数据显示,说明该网站是ajax动态获取数据的
分析完网站的基本情况之后,我们先按照之前的通用爬虫去爬取数据
- import requests
-
- url="https://xueqiu.com/v4/statuses/public_timeline_by_category.json?since_id=-1&max_id=20369998&count=15&category=-1"
- headers ={"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"}
- page_json = requests.get(url=url,headers=headers).json()
- print(page_json)
输出结果为:
{'error_description': '遇到错误,请刷新页面或者重新登录帐号后再试', 'error_uri': '/v4/statuses/public_timeline_by_category.json', 'error_data': None, 'error_code': '400016'}
出现上面的这种原因是因为cookie的反爬机制
- import requests
-
- url="https://xueqiu.com/v4/statuses/public_timeline_by_category.json?since_id=-1&max_id=20369998&count=15&category=-1"
- headers ={"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
- "Cookie": "aliyungf_tc=AQAAADriOUCilQoAxZ5btPQfYv7152ox; acw_tc=2760824915856669537353368e2ea5d4c1b87e45dadece330ae07e755b96f1; xq_a_token=2ee68b782d6ac072e2a24d81406dd950aacaebe3; xqat=2ee68b782d6ac072e2a24d81406dd950aacaebe3; xq_r_token=f9a2c4e43ce1340d624c8b28e3634941c48f1052; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOi0xLCJpc3MiOiJ1YyIsImV4cCI6MTU4NzUyMjY2MSwiY3RtIjoxNTg1NjY2OTA4NDgwLCJjaWQiOiJkOWQwbjRBWnVwIn0.YCQ_yUlzhRvTiUgz1BWWDFrsmlxSgsbaaKs0cxsdxnOaMhIjF0qUX-5WNeqfRXe15I5cPHiFf-5AzeRZgjy0_bSId2-jycpDWuSIseOY07nHM306A8Y1vSJJx4Q9gFnWx4ETpbdu1VXyMYKpwVIKfmSb5sbGZYyHDJPQQuNTfIAtPBiIeHWPDRB-wtf0qa5FNSMK3LKHRZooXjUgh-IAFtQihUIr9D81tligmjNYREntMY1gLg5Kq6GjgivfF9CFc11sJ11fZxnSw9e8J_Lmx8XXxhwHv-j4-ANUSIuglM4cT6yCsWa3pGAVMN18r2cV72JNkk343I05DevQkbX8_A; u=481585666954081; Hm_lvt_1db88642e346389874251b5a1eded6e3=1585666971; device_id=24700f9f1986800ab4fcc880530dd0ed; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1585667033"}
- page_json = requests.get(url=url,headers=headers).json()
- print(page_json)
-
- 手动处理cookies爬取雪球网
- import requests
- from lxml import etree
- session = requests.Session()
-
- url="https://xueqiu.com/v4/statuses/public_timeline_by_category.json?since_id=-1&max_id=20369998&count=15&category=-1"
- headers ={"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"}
-
- # 第一步,向雪球网首页发送一条请求,获取cookie
- session.get(url="https://xueqiu.com",headers=headers)
- # 第二步,获取动态加载的新闻数据
- page_json = session.get(url=url,headers=headers).json()
- print(page_json)
-
- 自动处理cookie爬取雪球网
原文链接:https://blog.csdn.net/u011323949/article/details/112621080
0
1
2
3
4
5
作者:天才也疯狂
链接: https://www.pythonheidong.com/blog/article/771912/078854954368ecea8aa2/
来源: python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系z452as@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!