您现在的位置是:亿华云 > IT科技类资讯
手把手教你写网络爬虫(5):PhantomJS实战
亿华云2025-10-08 18:50:59【IT科技类资讯】4人已围观
简介本系列:《手把手教你写网络爬虫1):网易云音乐歌单》 《手把手教你写网络爬虫2):迷你爬虫架构》 《手把手教你写网络爬虫3):开源爬虫框架对比》 《手把手教你
本系列:
《手把手教你写网络爬虫(1):网易云音乐歌单》 《手把手教你写网络爬虫(2):迷你爬虫架构》 《手把手教你写网络爬虫(3):开源爬虫框架对比》 《手把手教你写网络爬虫(4):Scrapy入门》大家好!手把手教实战从今天开始,写网我要与大家一起打造一个属于我们自己的络爬分布式爬虫平台,同时也会对涉及到的手把手教实战技术进行详细介绍。大家如果有什么好的写网想法请多留言,多提意见,络爬一起来完善我们的手把手教实战爬虫平台。在正式介绍平台之前,写网先用一些篇幅对基础篇做一点补充。络爬模拟滚动
这次的手把手教实战目标是爬一个众筹网站的源码下载所有项目,项目列表页如下:https://www.kaistart.com/project/more.html。写网打开后进行分析,络爬页面显示出10个项目:
如果想看到更多项目,手把手教实战并不能像网易云音乐那样点“下一页”翻页,写网而是络爬需要向下拉滚动条或者向下滚动鼠标滚轮来触发异步请求。爬虫该如何应对这种情况呢?我们可以使用selenium的api执行js代码将屏幕内容滚动到指定位置。
下面这段代码会一直向下滚动项目页,一直到滚不动为止:
# 一直滚动到***部 js1 = return document.body.scrollHeight js2 = window.scrollTo(0, document.body.scrollHeight) old_scroll_height = 0 while browser.execute_script(js1) >= old_scroll_height: old_scroll_height = browser.execute_script(js1) browser.execute_script(js2) time.sleep(1)scrollTo() 方法可把内容滚动到指定的坐标:
参数 描述 xpos 必需。要在窗口文档显示区左上角显示的文档的 x 坐标。云服务器提供商 ypos 必需。要在窗口文档显示区左上角显示的文档的 y 坐标。这里用到了scrollHeight,它和ClientHeight还有OffsetHeight有什么区别呢?
这样就会把图片保存在项目目录,打开看看:
再次运行程序,不出所料,Chrome浏览器弹出来,不仅能够正确显示页面,还一直在滚动:
项目全都刷出来了,想爬什么就爬吧!什么?你问我在Linux服务器上怎么爬?纯命令行的那种吗?
很赞哦!(6268)
相关文章
- 3、查看排名
- Python并发:线程和锁
- 阿里P8架构师讲述:3—5年程序员的发展和出路在哪里?
- 马斯克刚骂了激光雷达,这篇用纯视觉代替激光雷达的名校论文「力挺」了他
- 以上的就是为大家介绍的关于域名的详解
- 亿级日搜索量的美团如何构建高效的搜索系统?
- 达观数据:用好ngResource和postman,提高你的开发调试效率
- Python入门只需20分钟,从安装到数据抓取、存储原来这么简单
- 用户邮箱的静态密码可能已被钓鱼和同一密码泄露。在没有收到安全警报的情况下,用户在适当的时间内不能更改密码。在此期间,攻击者可以随意输入帐户。启用辅助身份验证后,如果攻击者无法获取移动电话动态密码,他将无法进行身份验证。这样,除非用户的电子邮件密码和手机同时被盗,否则攻击者很难破解用户的邮箱。
- 缓存系统中面临的雪崩/穿透/一致性问题