动态ip代理教你:如何用爬虫实现前端页面渲染

在很早以前,几乎绝大多数网站全全都是利用后端渲染的,即在服务器端组装形成完整的HTML页面,随后再将完整页面返回给前端进行展现。而近期,随着AJAX技术的不断普及,和AngularJS这类SPA框架的广泛应用,前端渲染的页面越来越多。

  不知大伙儿有没有听说过,前端渲染相比于后端渲染,是不利于进行SEO的,因为对网络爬虫不友好。究其原因,就是因为前端渲染的页面是需要在浏览器端执行JavaScript代码(即AJAX请求)才能获取后端数据,随后才能拼装成完整的HTML页面。

  针对这类情况,当前也是已经有很多解决方案,最常用的就是借助PhantomJS、puppeteer这类Headless浏览器工具,相当于在网络爬虫中内置1个浏览器内核,对爬取的页面先渲染(执行Javascript脚本),随后再对页面内容进行爬取。

  不过,要使用这类技术,通常全全都是需要使用Javascript来开发网络爬虫工具,对于我这种写惯了Python的人来说的确有些痛苦。

  直到某1天,kennethreitz大神发布了开源项目requests-html,看到项目介绍中的那句FullJavaScriptsupport!时不禁热泪盈眶,就是它了!该项目在GitHub上发布后不到三天,star数就达到5000以上,足见其影响力。

  requests-html为啥会这么火?

  写过Python的人,几乎全都会使用requests这么1个HTTP库,说它是最好的HTTP库1点也是不夸张(不限编程语言),对于其介绍语HTTPRequestsforHumans也是当之无愧。也是是因为这个原因,Locust和HttpRunner全全都是基于requests来进行开发的。

  而requests-html,则是kennethreitz在requests的基础上开发的另1个开源项目,除了可以复用requests的全部功能外,还实现了对HTML页面的解析,即支持对Javascript的执行,和利用CSS和XPath对HTML页面元素进行提取的功能,这些全全都是编写网络爬虫工具非常需要的功能。

  在实现Javascript执行方面,requests-html也是并没有自己造轮子,而是借助了pyppeteer这个开源项目。还记得前面提到的puppeteer项目么,这是GoogleChrome官方实现的NodeAPI;而pyppeteer这个项目,则相当于是使用Python语言对puppeteer的非官方实现,几乎具有puppeteer的所有功能。

  理清了以上关系后,相信大伙儿对requests-html也是就有了更好的理解。

  在使用方面,requests-html也是十分简单,用法与requests几乎相同,只是多了render功能。

  在执行render()之后,返回的就是经过渲染后的页面内容。

原文地址:http://blog.51cto.com/14059916/2343284

时间: 2024-10-14 16:20:58

动态ip代理教你:如何用爬虫实现前端页面渲染的相关文章

动态ip代理软件—互联网与爬虫相互依存

动态IP代理软件—互联网与爬虫相互依存 互联网的快速发展,因特网变成大批量信息的传递,有效的获取并运用这种信息的内容成为程序人员的一种极大的挑战.在互联网发展之初,是没有检索这项技术的. 在百度搜索引擎被开发设计出去以前,互联网技术仅仅文件传输协议(FTP)站点的集合,普通用户可以在站点地图中进行导航,以寻找特殊的共享文件. 为了方便搜索和组合移动互联网上能用的分布式系统统计数据,大家建立了一个自动化技术程序流程,这种流程称之为网络爬虫,网络爬虫可以爬取移动互联网上的所有网页 还可以爬取移动互联

Python爬虫实例 动态ip+抓包+验证码自动识别

最近出于某种不可描述的原因,需要爬一段数据,大概长这样: 是一个价格走势图,鼠标移到上面会显示某个时刻的价格,需要爬下来日期和价格. 第一步肯定先看源代码,找到了这样一段: 历史记录应该是从这个iframe发过来的,点进去看看,找到这样一段: 可以大概看出来是通过get一个json文件来获取数据,我们要的东西应该就在这个json里面.打开浏览器的开发者工具(F12),一个个看发过来的json,发现这样一个: 打开看看: ok,我们找到了想要的东西了,接下来分析下这个url,发现一些规律,可以直接

如何选择动态ip软件

现在随着我们的工作需要,越来越多的人已经开始使用换IP软件.现在市场上也有很多类的换IP软件,所以我们会在,如何选择换IP软件?什么换IP软件好用?的时候会比较迷茫,不知道该从哪入手.其实,在选择换IP软件时只需要考虑到以下4点就可以了. IP的可利用率 可利用率,是指提取的这些代理IP中可以正常使用的比率.如果说我们无法使用这个代理IP请求某个网站.某个服务器或者访问时超时,那么就代表这个代理IP可用率太差,甚至是不可用. IP的安全性 IP的安全性也是一个非常重要的比对因素,比如一旦不小心把

什么是Luminati动态IP代理,又有哪些功能?

什么是luminati动态IP代理?简单来说,Luminati是全球最大的业务代理网络!它改变了代理服务的游戏规则,使您能够通过位于世界每个国家和城市的数百万个住宅IP路由HTTP / S请求. Luminati住宅代理的功能 流量:所有定价计划都带有有限的带宽. 泳池规模:提供超过3500万个的全球住宅代理IP,这比任何其他代理提供者都可以提供的更多. 地点:全球每个国家和城市.该公司提供了所有受支持国家/地区的列表,但未指定城市. 并发请求:无限制,因此恶意服务器减慢运行速度的机会很小.这意

架设自己的私有github+数据中心,并通过域名访问(支持adsl动态ip)

如果可以随时随地,用任何设备(手机电脑ipad)访问自己的所有工程,以及数据文件.歌曲.电影.照片等等,那该有多诱人呀,下面介绍一下具体方法. 安装环境:ubuntu server 14.04 1:安装gitlab(开源的版本管理服务器,模仿github写的) 下载安装gitlab 官方说明文档:https://about.gitlab.com/downloads/ 安装gitlab前,首先需要安装openssh和postfix,如果安装系统选择软件包时直接选上openssh-server,这时

ubuntu14.04静态ip地址与动态ip地址配置

有时我们希望Ubuntu14.04的ip地址为静态ip地址,使得ubuntu中的ip地址不变,这样会方便在嵌入式设备和主机Ubuntu进行用网口进行调试. 静态ip地址的配置方法:在/etc/network/interfaces文件中,修改内容为 # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto eth0 iface eth0 inet static #iface eth0

路由器动态ip获取不到

路由器中设置动态IP上网后,路由器中一直显示正在获取动态IP,但就是获取不到动态IP地址信息.出现这样的情况,原因是多种多样的,建议大家按照下面的顺序排查 1.宽带问题 2.路由器连接问题 3.IP地址冲突 4.网线问题 一.宽带问题 首先,请检查下你的宽带是否出现了问题.可以先去掉路由器,让电脑直接连接宽带网线(猫),然后测试下电脑能否正常上网? 如果不用路由器的时候,电脑直接连接宽带无法上网,说明多半是宽带出现故障 :此时,请联系你的宽带运营商(网络管理员)进行排查. 如果不用路由器的时候,

iptables 自动绑定动态IP

由于公司的svn服务器放在外网,为了安全只允许特定的IP才能访问.(公司用PPPOE拨号) 几乎每天都要去刷公司的IP,这样很不方便.于是就想通过自动刷新动IP的想法. 具备条件: 1.路由器DDNS服务,如果没有那就用电脑下载花生壳客户端. 实现动态刷新shell核心代码如下: dyIP=$(ping **.kmdns.net -c1 | grep PING | awk '{ print $3 }' | cut -c 2- | cut -d\) -f1)iptables -A INPUT -s

路由器中pppoe,动态IP,静态IP的区别

路由器中pppoe,动态IP,静态IP的区别 要把路由器设置得能上网,无非就是设置WAN外网接口连接而已.WAN接口能上网,则连接的电脑就能上网,反之则上不了网.只不过WAN接口往往有pppoe,动态IP,静态IP三种连接方式,一般的用户搞不清楚有什么区别.且听我慢慢道来…… 第一种:PPPOE模式可以说是最常用的了,无论是从电信联通那里拉来的ADSL宽带,还是接小区的网络,用的都是PPPOE协议.因为他们都会给你一个宽带账号和密码,输入账号密码连接就可以上网了.这就要用PPPOE模式,要不然都