新世界!打开Selenium和PhantomJs的大门!--爬虫福音

前言

写过爬虫的朋友一定知道我们遇到的梦魇是什么,对,没错,就是动态网页!什么是动态网页?给没有了解过的朋友普及一下,就是网页最后的内容不是一开始就是完整的,而是等代码都加载完毕之后再执行一段js代码来补充网页的内容。比如说网页最后的内容是A,最初的代码是B,B里面包含一段js代码,这段代码执行之后可以产生C,这样B+c才等于A。而我们通过网络访问网页的url得到的只是B。这样做确实在很大程度上防止了一些简单爬虫的访问。像我就比较喜欢看漫画,所以就想写一个漫画爬虫,而漫画网站一般都是使用动态技术,后台要么使用AJAX技术,要么就是js来加密图片地址,反正一般爬虫途径是拿不到漫画图片的地址的。

这里就以乐神漫画网为例,我们先来看漫画的浏览页面:

这是一页内容,那么怎么拿到这张图片呢?这里我使用Python的爬虫框架BeautifulSoup得到的内容是这样的:

这个就是得到的img标签的内容,这里是没有图片的地址的。因为这里使用了onload属性,这里就是动态执行js代码然后改变src的值也就是我们的图片地址。除非我们能执行那一段js代码,否则就很难拿到地址。对,除非我们能执行那一段js代码,接下来就是本文的重点。

如何执行这一段js代码呢?js代码是依赖于浏览器的,所以找一个浏览器。那么就有人要问了,如果用浏览器还能叫爬虫吗?因为程序自动执行所以才方便的,如果自己手动操作那么还说什么呢。那么我就要说了,谁说我要手动操作了,浏览器难道不能是用代码执行的吗?如果有一个用代码执行控制的浏览器,那么浏览器就会执行那段js代码,这样我们通过浏览器就可以得到最后网页的内容也就是包括漫画图片地址。

说了这么多,那么这个浏览器是什么呢?它就是PhantomJs,你可以把它想象成一个没有界面的浏览器,它可以执行访问网页,执行js代码࿰

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值