RT ,我用 pyquery 爬知乎主页,然后因为貌似知乎主页是异步加载的(浏览器拉到底部,它就自动加载更多的条目),我只能获取大概 20 个问题。
请问怎么做能获取更多的问题呢?(点一下那个“更多”的按钮,然后就爬到更多的问题)
请问怎么做能获取更多的问题呢?(点一下那个“更多”的按钮,然后就爬到更多的问题)
|
cdwydJan 3, 2016
1
f12,点一下按钮,看请求
|
|
just1Jan 3, 2016 via Android
3
其实跟 python 一点关系都没有,应该到问与答
|
|
just1Jan 3, 2016 via Android
4
分析加载更多的请求,模拟就可以了
|
|
bdbaiJan 3, 2016 via iPhone
5
f12,点一下按钮,看请求
|
|
vmebehJan 3, 2016
6
其实是 js 监听页面滚动,当滚动到页面底部时 ajax 请求更多内容添加到 dom 树
F12 查看 XHR 可破 |
|
saberlionJan 3, 2016 via Android
7
爬知乎有很多程序
|
|
woorzJan 3, 2016
8
知科有 api 的吧
|
|
ianismeJan 3, 2016
10
抓他们的 APP 看看
|
|
cheneydogJan 3, 2016
11
ajax 的更好做了
|
|
CaratpineJan 3, 2016
12
补充一点 HTTP 协议相关的知识,如 1 , 6 楼所说打开开发者工具,看看异步加载时,发生的 HTTP 请求。
 |
|
14
首页的内容是 post 到“ https://www.zhihu.com/node/TopStory2FeedList ”,
带有表单数据: params , method 和_xsrf 。 |
|
7sDreamJan 3, 2016
15
https://github.com/7sDream/zhihu-py3
随便看一个需要异步加载的内容是咋获取的。 比如 answer 的 upvoter 函数,稍微看一下应该就会啦。 (另外,「不想看别人写的」这个想法稍微有点走偏了呀~~其实提问和看代码没有本质不同呐) |
|
16
@7sDream 哈哈,我的意思是想尽量通过提问或者资料来思考怎么写,要不然一上来就看别人写的代码总觉得是不是偷懒的行为。另外,我也是卡在了爬主页上,所以就没有考虑去看 upvoter 是怎么弄得,^_^)
|
|
wd0gJan 3, 2016
17
一般的都有规,你越往下拉某个参数的值越大或越小
自己多拉几次页面,对比下 URL 就知道了 |
|
lixiaohanJan 4, 2016
18
都是有规则的请求 应该是 offset 变化 你可以模拟一下
|
|
waner55Jan 6, 2016
19
|