-
Notifications
You must be signed in to change notification settings - Fork 93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ajax请求 #9
Comments
有的,今天学习了学长的第六章 Ajax数据爬取。也发现了这个问题,但我想学长写书的目的教的是方法,利用书中所授方法我找到了如下方式抓取。 首先,我观察几次的ajax的url,并没有发现什么规律 仔细观察,发现since_id实际上是本次刷新出来的最开始的那条微博的id 得到了以上信息,我们就可以在原始代码上进行修改。 main作如下修改:(省略部分保持不变) 运行结果无误!~ |
感谢! |
2020年2月19日测试无效,目前微博更新了api,即使模拟了请求头和url也无法使用requests获取到内容,但是用浏览器却可以,不知为何,等待高手解答,下面是代码
|
经测试,你出现的问题在于,headers里的host写的是m.weibo.com,应该是.cn。 |
测试通过!错误定位十分精准!非常感谢! |
@LiuZhH1366 您好,非常感谢您的代码。但是我执行的时候遇到了一点小问题。 |
我用了好久也没复现出你说的小问题(返回tuple,我这边返回的都是json的字典),希望能借代码一看,我猜可能是get_page()函数返回值不太一样。
|
|
我还是想说一句,问的时候要把代码发全,就这么一句,复现都复现不了,怎么帮你呀、、 |
我终于知道为什么楼上两位会返回tuple了,是因为get_page函数的问题。也是因为我的疏忽,起到了极大的误导性。 问题是这样的,我是照着书写的,楼上两位是照着GitHub上的代码写的,而二者的代码是不一样的。在【stevenshuang committed on 18 May 2018】这次更新中,由于微博API的更新,对get_page()函数进行了修改,对get_page()的返回值,由response.json()改成了两个response.json(), page。这也是楼上两位出现返回值是tuple的根本原因。也是我在【LiuZhH1366 commented on 26 Jan】回复中不严谨的一个问题所在。 所以就有了【hannzhao commented 5 days ago】中的以下内容:
两个元素,一个是json,一个是page,但是还能正确的跑 当然我还要肯定一点的是,本项目中的代码【https://github.com/Python3WebSpider/WeiboList/blob/master/weibo.py 】还能跑,而且能正确的跑,这是为什么?为什么page参数都没了还能用? So,我的结论就是这些,希望能帮到更多的人~ |
今天看见连since_id都没了 |
终于明白了,谢谢大佬 |
|
求助 现在微博的ajax请求和书上的好像完全不一样了 怎么办。。 |
[捂脸]我刚看了一下,好像还和上边的回复一样,应该是没变,建议你先仔细把书看看(书上大部分内容目前依旧有效),然后参考上边的回复以及开发者工具中你所看到的内容进行尝试,遇到实际问题再来求助。 |
我知道为什么了,必须要去域名为.cn的那个微博网站https://m.weibo.cn/u/2830678474 |
对的,有两个点,一个是手机版一般会比电脑版的页面更好爬取,所以选取的是m.weibo.cn而不是weibo.com,另一个是要想找到ajax的请求首先得先触发它,这里也就是页面得往下滑。 |
建议大家使用 @LiuZhH1366 更改之后的代码,即采用since_id而非page,当然parse_page函数也要做相应修改(把page形参去掉)。因为用page爬取不完整: |
原程序是可以正常跑的,page参数还是可以正常使用 的 |
学习了,各位大神。现在链接中多了display=0&retcode=6102,发现没有这个display=0&retcode=6102,程序照样运行 |
你好,你可以直接把修改好的整个代码发出来吗,发一句缺斤少两的代码,想运行都失败。无奈 |
想问一下如何用beautifulsoup实现这个呢,bs4如何解析json格式呀 |
为什么要用beautifulsoup解析json呢?直接用json库解析不就得了。而且beautifulsoup主要针对的是HTML/XML的解析。😂 |
ajax请求命令最后的page=改成sinceid=了,还有办法抓么?
The text was updated successfully, but these errors were encountered: