爬虫—微博博主动态和相册的请求构造规律
之前写过一篇selenium爬取微博相册的文章,有朋友私信我说可不可以直接构造请求列表获取,因为selenium有些慢,毕竟每次请求都要等待网页加载渲染完,否则就获取不到那些按钮或输入框。
今天去看了一下,整理了微博精选动态和相册的请求规律,不涉及具体的代码,因为我们都知道要爬取数据首先就得构造出url,构造出来后,就是一些代理,请求头之类的操作了。不过我觉得只要访问频率没那么高,设置一个请求头,加一个Cookie就完全可以绕过登录直接获取数据。最后解析json就行了。
1. 查找的博主u_id
1.1 请求
通过https://s.weibo.com/ajax/topsuggest.php?key=博主名称&_k=1636439925298&_t=1&outjson=1&uid=自己账号的uid
查找到他的u_id,后面的操作需要用到。
1.2 参数
参数 | 描述 |
---|---|
key | 待查找的博主的名称 |
_k | 我没有找到是什么东西,但是我估计是时间戳,因为我发现这个值跟我当前的时间是就差了几毫秒,并且只要传入的是一个时间戳,返回的结果都是不变的 |
_t | 不清楚是什么,固定为1 |
outjson | 不清楚是什么,固定为1 |
uid | 自己的uid |
自己的uid可以通过点击头像查看,方法很多,因为你几乎所有的操作都要基于你的uid,所以很容易找到自己的uid的,例如:
图片中打码的都是自己的uid。
1.3 返回结果
返回的结果如下,user是一个列表,需要自己判断谁是指定的那个:
2. 查看动态
2.1 请求
动态是ajax加载的,需要构造请求。url: https://weibo.com/ajax/statuses/mymblog?uid=2331498495&page=1&feature=0
2.2 参数
参数 | 描述 |
---|---|
uid | 指定博主的uid |
page | 第一次加载为1,后面依次增加 |
feature | 固定为0 |
2.3 返回结果
返回的结果如下:
注意圈出来的部分,因为页面是ajax加载的,这个值可以用来构造下一个链接,例如下一个链接就是:https://weibo.com/ajax/statuses/mymblog?uid=2331498495&page=2&feature=0&since_id=4623093169653741kp2
,
然后根据返回的结果,又可以构造下一个链接:https://weibo.com/ajax/statuses/mymblog?uid=2331498495&page=3&feature=0&since_id=下一个链接返回的since_id
。注意,page是跟着累加的,feature不变。
注意,首次加载时没有since_id参数的,是从第二次开始有了这个参数,因为这个参数是从上一次参数的返回结果中获取的。
然后返回结果的list中的每一项就是每一条动态,包括图片,文案,访问量等信息。
3. 查看相册
3.1 请求
首次访问url: https://weibo.com/ajax/profile/getImageWall?uid=2331498495&sinceid=0&has_album=true
3.2 参数
参数 | 描述 |
---|---|
uid | 要访问的博主的uid |
sinceid | 首次访问时为0,后续会改变 |
has_album | 首次访问时为true,后续就不需要了 |
3.3 返回结果
返回结果:
注意圈出来的部分,可用于构造下一次请求,例如下一次链接为:https://weibo.com/ajax/profile/getImageWall?uid=2331498495&sinceid=4692296133378252_4684344021486123_20211031_-1
,然后又可以根据下一次返回的结果,构造下下次链接。list中的就是每一张照片的信息,如图:
地址不全,但是可以构造成:https://wx3.sinaimg.cn/orj360/上图圈出来的pid.jpg
这种格式,这也是你在页面直接右键,复制图片地址得到的链接。
不过我发现微博动态和相册中的图片都有4种大小。分别是wap360、orj960、large和mw2000,图片尺寸依次增大。而默认得到的就是orj960。相信你也猜到了,要得到这四种不同尺寸的图片,只需要将链接https://wx3.sinaimg.cn/orj360/上图圈出来的pid.jpg
中对应位置替换即可。
这样就可以得到相册中的所有图片了。
4. 总结
通过上面两个例子,可以发现一些规律:
- 通过ajax加载的数据列表,都有一个初始的请求,然后请求的返回结果中的某个属性可以用来构造下一个请求。这也是在写爬虫的时候比较重要的一点,就是你如何构造出url。
- 不管是微博动态还是相册,图片都有四种大小。其他的估计也有类似的情况。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgaeahh
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01