python爬虫之爬虫和反爬之战,selenium和phantomjs

一、爬虫和反爬的斗争—反爬策略
1、反爬策略
(1)通过user-agent客户端标识来判断是不是爬虫。
解决的办法:封装请求头:user-agent
(2)封ip
解决办法:设置代理ip
(3)通过访问频率来判断是否是非人类请求。
解决的办法:设置爬取间隔和爬取策略。
(4)验证码
解决办法:识别验证码
(5)页面数据不再直接渲染,通过前端js异步获取
解决办法:
a通过selenium+phantomjs来获取数据
b找到数据来源的接口(ajax接口)
2、页面中的技术
(1)js:他是一种语言。
获取页面的元素,可以对这些页面元素做些操作。
网络数据的获取
(2)jquery:他就是一个js库,这个库可以使得js编程变得轻松容易。
(3)ajax
同步请求和异步请求。

二、什么selenium?

			selenium是一个web自动化测试工具。但是他本身不带浏览器的功能,这个工具就相当于一个驱动程序,通过这工具可以帮助我们自动操作一些具有浏览器功能的外部应用。

三、什么是phantomjs?

	phantomjs:内置的无界面浏览器引擎。他可以像浏览器那样加载页面,运行页面中的js代码。
	chromedriver.exe:是谷歌浏览器驱动程序,通过这个程序可以使得selenium可以调用chrome浏览器。---有界面浏览器。
	
	这两个的功能有界面的更加强大:很多网站可以识别你是不是用phantomjs来进行爬取的,会被禁。
		但是有界面的chrome浏览器是不会被禁的,他就像一个真正用户在请求一样。

四、selenium和phantomjs的安装。

		(1)下载phantomjs和chromedriver.exe
			搜索phanomjs镜像
		(2)安装:
			解压
			找到两个压缩包中exe文件,将其复制到anaconda/Scripts目录下面就ok了。
			C:\Anaconda3\Scripts
			C:\Anaconda3
		(3)测试:
			在cmd中输入:phantomjs
						 chromedriver
		 (4)selenium安装:pip isntall selenium==版本号
发布了5 篇原创文章 · 获赞 1 · 访问量 236

猜你喜欢

转载自blog.csdn.net/Sadi_/article/details/104363436