前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自制 Python 脚本抓取文库资料,selenium+PhantomJS 爬虫初接触

自制 Python 脚本抓取文库资料,selenium+PhantomJS 爬虫初接触

作者头像
云飞
发布2018-09-14 16:33:35
8630
发布2018-09-14 16:33:35
举报

大家都应该有需要在百度文库下载文档的经历,或者充值成为微挨批(VIP),或者在某宝买券去下载,也有的勤勤恳恳的上传文章,慢慢的攒下载券,当然也有一点一点的复制粘贴。。。或者也有比较喜欢走捷径的,去什么什么文库等网站下载!或者一些人用其他破解方法,比如放到手机的百度文库APP里,另存为文章,不需要下载券就可以下载文章。诸如此类的方法,可谓五花八门。而对于学习爬虫的人来说,面对怎样免费下载一个付费的word文章的问题,第一个想到的应该就是:

自己写个程序搞下来。

以《中华人民共和国国家标准》为例,来看看怎么用python抓下来这篇文档!

url: https://wenku.baidu.com/view/378bf328fc4ffe473268ab12

感觉应该不难吧,至少开始我是这么想的,但是当我将文档拉到下面的时候,我看到了如下内容:

需要点击“继续阅读”才可以显示后面的内容,单抓这一页,是抓不完我们要的内容的。

那我们来抓包看看?然后一脸懵逼了

一堆不明觉厉的代码,各种广告推广。。。果断放弃!

还有什么办法能抓取内容呢?带着这个思考,selenium神器进入了我的脑海!

安装selenium和浏览器驱动这里就不细说了,大家自行网上查找吧,很多很详细的!

实战阶段

直接在网页中F12查看文档所在位置!

这里可以看到,文档中的内容都在<divclass="ie-fix">下面的P标签中,我们先用selenium取得网页源码,然后直接用xpath抓标签,取内容(中间有img标签显示图片的取出url)看看

果然可以,文档内容部分已经取出,接下来就是定位到“继续阅读”标签,模拟点击,然后取后半部分了!

定位代码如下:

page =driver.find_element_by_xpath('//div[@class="banner-more-btn"]').click()

整体代码和效果如下:

至此,完整文档就被我们抓下来了!如果有存在翻页的话,就需要定位后**页,除了第一次之后的都不需要在定位并点击“继续阅读”!当然中间还有图片等等形式的内容存在的文档,以url显示了!总体来说,selenium做爬虫还是比较简单粗暴的。

PS:这里我是用了PhantomJS,如果有用Firefox或者谷歌的小伙伴要注意,最新版的好像不是很友好,建议大家用稍微旧一点的版本!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云飞学python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自己写个程序搞下来。
  • 实战阶段
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档