请教一个 python 爬虫的小问题

2016-01-03 16:51:16 +08:00
 wowpanda
RT ,我用 pyquery 爬知乎主页,然后因为貌似知乎主页是异步加载的(浏览器拉到底部,它就自动加载更多的条目),我只能获取大概 20 个问题。
请问怎么做能获取更多的问题呢?(点一下那个“更多”的按钮,然后就爬到更多的问题)
4149 次点击
所在节点    Python
19 条回复
cdwyd
2016-01-03 16:54:21 +08:00
f12,点一下按钮,看请求
wowpanda
2016-01-03 16:59:40 +08:00
@cdwyd 在下拉过程中,它就会自动加载更多的内容啊,这个怎么做?
just1
2016-01-03 17:03:20 +08:00
其实跟 python 一点关系都没有,应该到问与答
just1
2016-01-03 17:03:58 +08:00
分析加载更多的请求,模拟就可以了
bdbai
2016-01-03 17:07:44 +08:00
f12,点一下按钮,看请求
vmebeh
2016-01-03 17:08:39 +08:00
其实是 js 监听页面滚动,当滚动到页面底部时 ajax 请求更多内容添加到 dom 树
F12 查看 XHR 可破
saberlion
2016-01-03 17:45:44 +08:00
爬知乎有很多程序
woorz
2016-01-03 17:58:07 +08:00
知科有 api 的吧
wowpanda
2016-01-03 19:29:07 +08:00
@saberlion 额, github 上没搜到爬主页的啊,另外我也想自己写,不太想看别人写的
ianisme
2016-01-03 19:44:53 +08:00
抓他们的 APP 看看
cheneydog
2016-01-03 19:47:31 +08:00
ajax 的更好做了
Caratpine
2016-01-03 19:57:58 +08:00
补充一点 HTTP 协议相关的知识,如 1 , 6 楼所说打开开发者工具,看看异步加载时,发生的 HTTP 请求。
![zhihu]( http://i4.tietuku.com/e6bd5419681e5fca.png)
wowpanda
2016-01-03 20:22:28 +08:00
@Caratpine 非常感谢
geekqiao
2016-01-03 20:31:51 +08:00
首页的内容是 post 到“ https://www.zhihu.com/node/TopStory2FeedList ”,
带有表单数据: params , method 和_xsrf 。
7sDream
2016-01-03 20:46:28 +08:00
https://github.com/7sDream/zhihu-py3

随便看一个需要异步加载的内容是咋获取的。

比如 answer 的 upvoter 函数,稍微看一下应该就会啦。

(另外,「不想看别人写的」这个想法稍微有点走偏了呀~~其实提问和看代码没有本质不同呐)
wowpanda
2016-01-03 22:36:54 +08:00
@7sDream 哈哈,我的意思是想尽量通过提问或者资料来思考怎么写,要不然一上来就看别人写的代码总觉得是不是偷懒的行为。另外,我也是卡在了爬主页上,所以就没有考虑去看 upvoter 是怎么弄得,^_^)
wd0g
2016-01-03 22:52:10 +08:00
一般的都有规,你越往下拉某个参数的值越大或越小
自己多拉几次页面,对比下 URL 就知道了
lixiaohan
2016-01-04 10:10:41 +08:00
都是有规则的请求 应该是 offset 变化 你可以模拟一下
waner55
2016-01-06 11:38:24 +08:00

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

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

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

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

© 2021 V2EX