最新消息:VPS服务器又从fzhost.net换回Linode了,主题仍用朋友推荐的大前端D8

【已解决】pyspider中如何加载汽车之家页面中的更多内容

pyspider crifan 165浏览 0评论

折腾:

【已解决】写Python爬虫爬取汽车之家品牌车系车型数据

期间,发现默认的pyspider去加载页面:

https://www.autohome.com.cn/car/

默认只加载了其中一部分:

只有127个follow链接

而原网页中,鼠标继续向下滚动时,可以加载更多

开始以为只有1200多个

-》又多试了几次的滚动页面,最后有3000多个:

-〉所以需要搞懂,如何在pyspider中实现模拟鼠标滚动页面,加载更多的内容

pyspider simulate scroll load more

pyspider   scroll load more

pyspider   模拟滚动加载更多

Python爬虫进阶四之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

scrollPosition | PhantomJS

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中如何加载汽车之家页面中的更多内容

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
18 queries in 0.218 seconds, using 10.69MB memory