请教爬虫问题,浏览器能访问到的页面,爬虫时某些 id 能访问到,有些不能。

2018-11-20 18:02:48 +08:00
 JCZ2MkKb5S8ZX9pq

问题

import requests


def get_user_info(uid):
    url = 'https://m.weibo.cn/api/container/getIndex'
    headers = {
        'Accept': 'application/json, text/plain, */*',
        'DNT': '1',
        'MWeibo-Pwa': '1',
        'Referer': 'https://m.weibo.cn/u/1707254184',
        'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
        'X-Requested-With': 'XMLHttpRequest',
    }

    headers['Referer'] = f'https://m.weibo.cn/u/{uid}'
    p = {'type': 'uid',
         'value': uid,
         'containerid': '100505%s' % uid}
    body = request(url, headers=headers, params=p)
    print(body)


uid1 = 1692016845
uid2 = 1996669711
get_user_info(uid1)
get_user_info(uid2)
1170 次点击
所在节点    Python
4 条回复
JCZ2MkKb5S8ZX9pq
2018-11-20 18:27:16 +08:00
fiddler 下用安卓模拟器测试了下,浏览器访问 uid2,提示证书有问题(已安装 fiddler 证书),会不会是微博方的 https 的问题?
但我不是很懂,有人能费心解释一下嘛?
freshmanc
2018-11-20 19:46:34 +08:00
>>>get_user_info(uid2)
{'ok': 0, 'msg': '这里还没有内容', 'data': {'cards': []}}

does uid2 really exist?
1130335361
2018-11-21 10:07:12 +08:00
经过测试,查看这个博主好像要登录之后才能看,不知道是什么机制
楼主可以用隐身模式打开这两个链接试试
http://weibo.com/u/1996669711
https://m.weibo.cn/u/1996669711
JCZ2MkKb5S8ZX9pq
2018-11-21 17:20:32 +08:00
@1130335361 后来访问失败的都加 cookie 重取了。不过不知道微博网页版的这个 cookie 管用多久,客户端 api 倒是能用很久,不过那个访问多了又有 403 限制,之后再看吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/509728

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX