爬取雪球网的新闻数据_雪球cookie-程序员宅基地

技术标签: 爬虫平台  

以下将从处理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的反爬机制

手动处理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爬取雪球网

自动处理cookie

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爬取雪球网

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011323949/article/details/112621080

智能推荐

HCP Lab 12篇论文入选世界顶级计算机视觉会议 CVPR 2019-程序员宅基地

文章浏览阅读1k次。本文由中山大学人机物智能融合实验室(HCP Lab)特约供稿。全球计算机视觉三大顶会之一CVPR 2019(IEEE Conference on Computer Visionand Pattern Recognition) 于 6月 16~20日 在美国洛杉矶如期举办。CVPR 作为计算机视觉三大顶级会议之一,一直以来都备受关注。被 CVPR 收录的论文更是代表了计算机视觉领域的最新发展...

ubuntu14.04安装gcc失败_没有可用的软件包 gcc-multilib,但是它被其它的软件包引用了。 这可能意味着这个-程序员宅基地

文章浏览阅读4.7k次,点赞8次,收藏9次。安装又按不了->更新又不行->怎么办gcc程序“gcc”尚未安装。 您可以使用以下命令安装:sudo apt-get install gccweifc@ubuntu:~/demo$ sudo apt-get install gcc正在读取软件包列表… 完成正在分析软件包的依赖关系树正在读取状态信息… 完成现在没有可用的软件包 gcc,但是它被其它的软件包引用了。这可能..._没有可用的软件包 gcc-multilib,但是它被其它的软件包引用了。 这可能意味着这个

引入rxtx串口通信jar及native path的坑_rxtx version mismatch-程序员宅基地

文章浏览阅读2.7k次。首先,到http://rxtx.qbang.org/wiki/index.php/Download下载相应zip包,由于发帖时2.2版本不稳定(里面是jar是2.1版本,但dll是2.2版本,造成版本冲突,报错:RXTX Version mismatch),建议使用2.1-7r2版本。请参见本博客另一篇博文点击打开链接,将zip中的jar安装到maven仓库里。在pom文件中加入引用。_rxtx version mismatch

蓝绿色部署-程序员宅基地

文章浏览阅读299次。传统上,我们通过替换当前版本来部署新版本。 旧版本停止了,新版本被替换了。 这种方法的问题是从旧版本停止运行到新版本完全运行之间的停机时间。 无论您尝试执行此过程的速度如何,都会有一些停机时间。 那可能只有一毫秒,也可能持续数分钟,在极端情况下甚至可能长达数小时。 具有整体式应用程序会带来其他问题,例如,需要等待相当长的时间才能初始化应用程序。 人们试图以各种方式解决此问题,并且大多数人使用..._不可变部署 蓝绿部署

android反射获取系统属性值_android userhandle.system需反射获取-程序员宅基地

文章浏览阅读751次。/** * 获取当前系统的版本名称 * @return */ public String getSystemVersionName(){ String ver = null; try { systemProperties_get = Class.forName("android.os.System..._android userhandle.system需反射获取

java中sleep()和wait()区别_sleep和wait-程序员宅基地

文章浏览阅读2w次,点赞14次,收藏56次。1,sleep方法是Thread类的静态方法,wait()是Object超类的成员方法 2,sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notif..._sleep和wait

随便推点

Android Studio的安装和gradle的下载_andriod端下载-程序员宅基地

文章浏览阅读5.4k次,点赞4次,收藏17次。1.Android studio的安装百度搜索Android studio官网下载速度会比较慢,所以我们选择中文社区在这里选择要下载的版本,我选择的是Windows3.5.2版本下载完成之后双击安装,这里要注意,因为一般情况下我们都是用Java编程,所以安装的时候尽量选择和jdk同一个盘下。而且安装路径尽量不要出现中文,容易报错。然后一路next+finish。..._andriod端下载

Duilib vs调试程序加载资源失败,但是单独执行exe可以成功_vs 本地资源运行不起来,exe可以运行-程序员宅基地

文章浏览阅读5.3k次。在Duilib程序中,在xml中如果有加载资源文件(比如png背景图片),如果调试程序是出现黑屏,加载资源失败,但是单独执行exe文件是可以的,这是很可能是因为资源文件的位置放的不对,你可能释放到xml相同的目录,但是程序实际上加载资源文件实在项目的当前目录,把资源文件放到项目的当前目录就是可以的,这样虽然是可以的,但是感觉不太符合要求,如果需要在指定的位置加载资源文件,可以使用以下代码来设置:_vs 本地资源运行不起来,exe可以运行

Cocos Creator 如何进行断点调试?_cocos打断点-程序员宅基地

文章浏览阅读3.8k次。最近在写游戏的时候,遇到了一些奇怪的问题,由于之前写的都比较顺利,从来没有调试过代码,直到现在才发现学习 Cocos Creator 这几个月以来竟然从来没有调试过代码,于是赶紧研究了一下,发现经常用到的大概就两种:VS Code + Chrome 和 Chrome,今天就来简单的记录一下,方便和我一样不会调试的小伙伴了解一下。第一种:VS Code + Chrome1.首先创建一个 Hell..._cocos打断点

opencv基础知识连接_openmv供电怎么接线-程序员宅基地

文章浏览阅读224次。https://www.cnblogs.com/silence-cho/p/10926248.html(一)OpenCV-Python学习—基础知识_openmv供电怎么接线

JS----layui table 合并计算_layui table某一行最大值-程序员宅基地

文章浏览阅读388次。layui table 合并计算关键开启:totalRow: true,显示: {field: 'tempId', width: 80, align: 'center', title: 'ID', sort: true, totalRowText: '合计'}, {field: 'callOut', width: 100, align: 'center', title: '呼出次数', totalRow: true, sort: true},完整table.render({ _layui table某一行最大值

SpringBoot 常用依赖_springboot依赖-程序员宅基地

文章浏览阅读1w次,点赞15次,收藏94次。项目依赖版本规约一、JDK版本​ JDK 1.8 191二、SpringBoot依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <..._springboot依赖

推荐文章

热门文章

相关标签