用 requests 抓取 ngacn.cc 页面内容 error

2015-10-14 11:14:55 +08:00
 heloman

打算抓取 http://bbs.ngacn.cc/thread.php?fid=-7&page=1 里面的帖子,找出热点帖子。 python 写了脚本,但运行时总是出错。

代码如下:

https://gist.github.com/anonymous/99ef5fb95bd8e4c72f1d

抓取分两步,第一次直接抓的页面里面有 js 在 url 上附加一个 rand 参数之后再次加载,但第二次抓取总是报错:

https://gist.github.com/anonymous/2ea6d51690926641501f

2219 次点击
所在节点    问与答
6 条回复
ksupertu
2015-10-14 13:47:49 +08:00
Phantomjs
liiihhhh
2015-10-14 14:04:21 +08:00
heloman
2015-10-14 16:23:59 +08:00
@liiihhhh 多谢! 看到 lite=xml 可以直接获得 xml ,但是查看 fid=-7 的页面总是要有一次再次加载的过程,手动构造了加 rand 的 url 但还是 get 数据出错,这个怎么破?
比如
http://bbs.ngacn.cc/thread.php?fid=7&lite=xml&page=1&rand=996
这个可以直接访问
但是
http://bbs.ngacn.cc/thread.php?fid=-7&lite=xml&page=1&rand=996
这个 url 已经附加了 rand 参数,但还是报错
heloman
2015-10-14 16:25:41 +08:00
@ksupertu 这个好牛!似乎太复杂的样子~ 我现在已经附加参数模拟 js 行为了,应该和用 Phantomjs 效果一致吧,但还是出错
liiihhhh
2015-10-15 09:13:11 +08:00
@heloman 加 rand=996 这个参数是干嘛的? http://bbs.ngacn.cc/thread.php?fid=7&lite=xml&page=1&rand=996 可以获得数据啊
heloman
2015-10-15 09:54:40 +08:00
@liiihhhh 试试 fid=-7 , js 里这个分两步加载,第二步的请求里附加了 rand

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

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

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

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

© 2021 V2EX