1
ynztyl10 2015-10-21 19:16:48 +08:00
你需要把 xhr 的链接也爬到,比如:
http://202.119.112.133:8080/opac/ajax_douban.php?isbn=9787200069761 |
2
wuhuaji 2015-10-21 19:24:26 +08:00
因为这个豆瓣信息是异步加载的,并不存在你原先的页面中,你查看网页源代码就能看到了,并没有这部分信息。然后你重新打开,看 http 链接,会发现打开网页之后,请求了 http://202.119.112.133:8080/opac/ajax_douban.php?isbn=9787200069761 链接,此时豆瓣的东西才加进来。
|
3
wuhuaji 2015-10-21 19:25:09 +08:00
我记得前两天 v2 上有人问查不到京东的物品价格,和你这个一样,都是异步加载的。
|
4
honmaple OP @ynztyl10 原来是 json,请教如何才能高效地爬到 http://202.119.112.133:8080/opac/ajax_douban.php?isbn=9787200069761 这样的链接,是使用 json 模块解析吗
|
6
Slienc7 2015-10-21 19:49:49 +08:00 via Android
F12->网络
建议找个简短 JS 教程先看一下 |
7
honmaple OP 找到解决方法了,使用 Selenium 和 Phantomjs 很容易的抓取到豆瓣简介
|
8
Victor215 2015-10-21 20:31:50 +08:00 via Android
你先抓包看看 能不能拿到 api,用浏览器模拟很慢,也容易出问题
|
9
honmaple OP @Victor215 我刚刚也发现了,使用 Phantomjs 解析大概 10 次中会有一次无法得到想要的内容,我还以为是网络的问题
|
10
cszhiyue 2015-10-21 20:58:54 +08:00
模拟一下发包 |
11
Victor215 2015-10-21 21:59:36 +08:00
@honmaple 而且用 phantomjs 还要注意各种设置,比如说不要载入图片,而且适时的拿到 html 源码就行了,不需要一直浏览器模拟,太慢了。。
|
12
joshz 2015-10-22 10:32:08 +08:00 via Android
bs 是拿来解析网页的吧,莫名背锅
|