小弟正在写一个爬虫,已经到达了要爬取的地址,该页面有一个 list ,目标时爬取这个 list 中的数据, 可恶的是,这个 list 的数据是动态加载的,也就是说页面渲染完毕之后 list 部分显示 loading 。。 并不显示数据,造成目前卡在 发 get 请求 只能 得到这个 list 里 的 loading 。。。字符串
实际上 在浏览器中 这个 list 会在页面打开之后 一定时间后刷出 列表的数据 , 这样的数据 该怎么 爬取呢??
1
zentorwie 2016-03-17 23:30:32 +08:00
一个有效但是性能不是很好的做法是用 PhantomJS 模拟浏览器。
|
2
zentorwie 2016-03-17 23:31:49 +08:00
忘了说是 selenium+PhantomJS
|
3
alansalexer 2016-03-17 23:38:28 +08:00
1. casperjs
2. python webkit |
4
exoticknight 2016-03-17 23:45:32 +08:00
前几天刚用 node 和 phantomjs 搞类似的东西
你可以试试 另外一个思路是抓 ajax 请求,自己模拟 |
5
cuikangyuan OP @zentorwie 好的 我试试
|
6
cuikangyuan OP @exoticknight 哈哈 没学过 nodejs ,用的 beautifulsoup 和 requests
|
7
zerowxxyf 2016-03-18 09:10:16 +08:00 1
简单点的做法是抓包,找到获取数据的地址就 so easy 啦
|
8
cuikangyuan OP @zerowxxyf 恩 ,找到 那个 地址 啦
|
9
3dwelcome 2016-03-18 10:34:15 +08:00 1
网易就是啊,内容是 ajax 动态刷的,你用 GET 取一个静态界面完全没意义。其实就如楼上说的,用 webkit 模拟一个浏览器呗,然后再把 rendertree 导出来。
|
10
wlsnx 2016-03-18 14:56:06 +08:00
F12 看 ajax
|