一、爬虫和反爬的斗争
1、反爬策略:
⑴通过user-agent客户端标识来判断是不是爬虫。
解决办法:封装请求头 user-agent
⑵封ip
解决办法:设置代理IP
⑶通过访问频率来判断是否是非人类请求
解决办法:设置爬取间隔和爬取策略
⑷验证码
解决办法:识别验证码
⑸页面数据不在直接渲染,通过前端JS异步获取
解决办法:a.通过selenium+phantomJS来获取数据
b.找到数据来源的接口(ajax接口)
2、页面中的技术
(1)JS:是一种语言
获取页面的元素,可以对页面元素进行操作。网络数据的获取。
(2)jQuery:就是一个js库,这个库可以使JS编程变得轻松容易。
(3)ajax:异步请求
二、selenium+phantomjs
1、什么是selenium?
selenium是一个web自动化测试工具。但是它本身不带浏览器的功能,它这个工具就相当于一个驱动程序,通过这个工具可以帮助我们自动操作一些具有浏览器功能的外部应用。
2、什么是phantomjs?
phantomjs就是内置的无界面浏览器引擎。它可以像浏览器那样加载界面,运行页面中的js代码。
chromedriver.exe这个是谷歌浏览器驱动程序,通过这个程序selenium可以调用Chrome浏览器----有界面浏览器
这两个的功能有界面的更加强大:很多网站还是可以识别是否是用phantomjs来进行爬取的,也会被禁。
但有界面的chrome.exe是不会被禁的,它就像一个真正用户在请求一样。
3、selenium和phantomjs的安装
(1)、下载phantomjs和chromedriver.exe
搜索镜像
(2)、安装:
解压,找到两个压缩包中的exe文件,将其复制到anaconda/script目录下面。
(3)、测试:
在cmd中输入:phantomjs和chromedriver
(4)、selenium安装:
pip install selenium