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==版本号
from selenium import webdriver
#1、创建一个驱动
# driver = webdriver.PhantomJS()#无界面的
driver = webdriver.Chrome()# 有界面的
# driver = webdriver.Firefox()# 火狐浏览器也支持selenium
可以通过dirver对象对页面进行一些操作:
driver.find_element_by_id()#通过id属性查找
driver.find_element_by_xpath()#通过xpath路径查找
driver.find_element_by_css_selector()#通过css选择器查找
WebElement 对象可以做的事情:
#查看元素的位置
demo.send_keys(u'python爬虫')
# print(demo.location)
#查看元素大小
# print(demo.size)
#截屏
driver.save_screenshot('filename.png')
#点击
driver.find_element_by_xpath('//*[@id="form"]/span[2]').click()
driver.close()#关闭选项卡
driver.quit()#关闭浏览器

selenuim常用方法总结.note
selenuim常用方法总结.note
selenium的三种等待.note

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值