折腾:
期间,发现默认的pyspider去加载页面:
https://www.autohome.com.cn/car/
默认只加载了其中一部分:
只有127个follow链接
而原网页中,鼠标继续向下滚动时,可以加载更多
开始以为只有1200多个
-》又多试了几次的滚动页面,最后有3000多个:
-〉所以需要搞懂,如何在pyspider中实现模拟鼠标滚动页面,加载更多的内容
pyspider simulate scroll load more
pyspider scroll load more
pyspider 模拟滚动加载更多
“哦,有些页面没有加载出来,这是为什么?
在之前的文章说过,这个页面比较特殊,右边的页面使用 JS 渲染生成的,而普通的抓取是不能得到 JS 渲染后的页面的,这可麻烦了。
然而,幸运的是,PySpider 提供了动态解析 JS 的机制。”
加上:
fetch_type=‘js’
试试
结果还只有127个:
pyspider 模拟js滚动
pyspider,_pyspider怎样爬取分页数据呢?,pyspider – phpStudy
pyspider 爬虫教程(三):使用 PhantomJS 渲染带 JS 的页面 | Binuxの杂货铺
好像是可以加上js,写上自己的模拟鼠标滚动的js
pyspider初探 – 个人文章 – SegmentFault 思否
phantomjs simulate mouse scroll
javascript – How to scroll down with Phantomjs to load dynamic content – Stack Overflow
Simulating scrolling in PhantomJS – PhantomJS Cookbook
phantomjs simulate mouse scroll bottom
javascript – How to scroll in PhantomJS to trigger lazy loads? – Stack Overflow
“Scroll to bottom” dynamic loading not triggered · Issue #14811 · ariya/phantomjs
好像没有找到太合适代码去模拟鼠标滚动到底部
不过在查看页面,在鼠标向下滚动时,发现:
是加载B字母开头的页面
而不是单独加载js?
然后发现了,是可以单独访问对应页面,只返回对应内容的:
https://www.autohome.com.cn/grade/carhtml/B.html
https://www.autohome.com.cn/grade/carhtml/W.html
-》所以,则可以直接访问对应列表,而
继续去调试:
https://www.autohome.com.cn/grade/carhtml/b.html
返回498个:
https://www.autohome.com.cn/grade/carhtml/y.html
返回103个:
然后去调试pyspider:
也是可以获得对应的:
【总结】
此处,通过:
汽车之家的car的首页:
https://www.autohome.com.cn/car/
调试鼠标滚动加载更多数据而发现:
https://www.autohome.com.cn/grade/carhtml/a.html
https://www.autohome.com.cn/grade/carhtml/b.html
。。。
https://www.autohome.com.cn/grade/carhtml/z.html
而直接获得每个字母的下面的车型
从而规避了,绕开了,非要模拟鼠标滚动,去加载更多数据。
转载请注明:在路上 » 【已解决】pyspider中如何加载汽车之家页面中的更多内容