爬虫(三):Session和cookie、代理、selenium自动化

  • Task03:session和cookie、代理、selenium自动化 拔高:丁香园留言板爬取

静态网页
静态网页就是 html 页面,后缀为 .html 的这种文件,直接部署到或者是放到某个 web 容器上,就可以在浏览器通过链接直接访问到了,常用的 web 容器有 Nginx 、 Apache 、 Tomcat 、Weblogic 、 Jboss 、 Resin 等等.
这种网页的内容是通过纯粹的 HTML 代码来书写,包括一些资源文件:图片、视频等内容的引入都是使用 HTML 标签来完成的。它的好处当然是加载速度快,编写简单,访问的时候对 web 容器基本上不会产生什么压力。但是缺点也很明显,可维护性比较差,不能根据参数动态的显示内容等等。
动态网页
大家常用的某宝、某东、拼夕夕等网站都是由动态网页组成的。
动态网页可以解析 URL 中的参数,或者是关联数据库中的数据,显示不同的网页内容。现在各位同学访问的网站大多数都是动态网站,它们不再简简单单是由 HTML 堆砌而成,可能是由 JSP 、 PHP 等语言编写的,当然,现在很多由前端框架编写而成的网页小编这里也归属为动态网页。
说到动态网页,各位同学可能使用频率最高的一个功能是登录,像各种电商类网站,肯定是登录了以后才能下单买东西。

-关于代理问题 – 代理池
网上有大量公开的免费代理,或者我们也可以购买付费的代理IP。一旦我们选用了一个不可用的代理,这势必会影响爬虫的工作效率。
有必要维护一个稳定的代理池服务,当爬虫发现代理不能使用可以主动去delete代理IP,当爬虫发现代理池IP不够用时可以主动去refresh代理池。这样比检测程序更加靠谱

含有大量JS的网页 - CSDN
在这里插入图片描述
网站优化了自身代码,以前是直接读取用户post的字段。现在改成获取数据然后再使用javascript进行加密,再来提交给自身的服务器。
不能够直接拿到网页数据时,我们该怎么办?
1. selenium
2. execjs / PyV8

含有大量JS的网页1 – selenium.

selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。
Selenium可模拟真实浏览器,自动化测试工具,支持多浏览器,爬虫中主要来解决JavaScript渲染问题。
在这里插入图片描述
Selenium 测试直接在浏览器中运行,就像真实用户所做的一样,基本支持了所有的主流浏览器,主流语言中也都有其webdriver的实现。
由于直接调用浏览器操作,遇到滑块验证码这种人类操作selenium解决也会非常方便。
在这里插入图片描述

含有大量JS的网页2 — 执行JS的类库:execjs,PyV8,selenium,node

在这里插入图片描述
大家看此处提交的密码就是通过js加密过的,如果此处的js代码本身清晰,可以通过阅读代码了解到其处理逻辑;如果js代码本身也被混淆处理,就需要直接执行代码,获取其结果。

 ->>>import execjs
 ->>>execjs.eval("'red yellow blue'.split(' ')")
['red', 'yellow', 'blue']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值