第五讲 反爬策略 笔记5

1、path环境变量的作用:

为了让cmd找到各种命令exe工具,配path就找exe所在目录配置就可以了。
C:\Anaconda3\Scripts—找pip.exe C:\Anaconda3----python.exe
2.修改完path,要重启cmd

where python path pip install redis pip install aiohttp

pip install asyncio

第五讲:动态html

一、反爬策略:

1、请求头:
—user-agent
—referer
—cookie
2、访问频率限制。 —代理池
—再用户访问高峰期进行爬取,冲散日志。12-13 7-10
—设置等待时长。time.sleep(3)
3、ajax异步请求,用接口获取数据。
4、能一次性获取的数据,绝不发送第二次请求(获取数据的过程中尽量减少请求次数。)
5、页面内容是js代码。
selenium+phantomjs的组合进行页面内容的获取。

二、html页面的技术

  1、js: 		页面在请求html的过程中,服务器返回html,同时还会请求js文件。

2、jqery:js的库,方便js开发。
3、ajax:web的异步请求技术 同步请求,异步请求。

三、selenium和phantomjs

  1、什么是selenium?
  	selenium一个web自动化测试工具。【但是它本身是不带浏览器】。这个工具其实就是作为一些    外部工具驱动来使用的,可以控制一些外部应用来完成自动化测试。
  2、phantomjs:他其实就是一个内置无界面浏览器引擎。--无界面可以提高程序运行速度。
  	因为phantomjs是一个浏览器引擎,所以他最大的功能就是执行页面的js代码。

3.安装selenium和phantomjs?

selenium安装:pip install selenium==2.48.0
phantomjs安装:百度phantomjs镜像—>下载一个Windows版本的————>phantomjs-2.1.1-windows.zip

可视化的chrome浏览器插件:—chromedriver安装:
下载:百度:chromedriver镜像
(1)保证chrome是正版。
(2)查看自己chrome的版本号:73.0.3683.86
(3)找一个和自己版本号最接近的版本下载。

  		将下载好的exe文件复制到:C:\Anaconda3\Scripts
	文档:selenuim常用方法总结.note

1.获取当前页面的Url

方法:current_url
实例:driver.current_url

2.获取元素坐标

方法:location
解释:首先查找到你要获取元素的,然后调用location方法
实例:driver.find_element_by_xpath(“xpath”).location

3.表单的提交

方法:submit
解释:查找到表单(from)直接调用submit即可
实例:driver.find_element_by_id(“form1”).submit()

4.获取CSS的属性值

方法:value_of_css_property(css_name)
实例:driver.find_element_by_css_selector(“input.btn”).value_of_css_property(“input.btn”)

5.获取元素的属性值

方法:get_attribute(element_name)
实例:driver.find_element_by_id(“kw”).get_attribute(“kw”)

6.判断元素是否被选中

方法:is_selected()
实例:driver.find_element_by_id(“form1”).is_selected()

7.返回元素的大小

方法:size
实例:driver.find_element_by_id(“iptPassword”).size
返回值:{‘width’: 250, ‘height’: 30}

8.判断元素是否显示

方法:is_displayed()
实例:driver.find_element_by_id(“iptPassword”).is_displayed()

9.判断元素是否被使用

方法:is_enabled()
实例:driver.find_element_by_id(“iptPassword”).is_enabled()

10.获取元素的文本值

方法:text
实例:driver.find_element_by_id(“iptUsername”).text

11.元素赋值

方法:send_keys(*values)
实例:driver.find_element_by_id(“iptUsername”).send_keys(‘admin’)

12.返回元素的tagName

方法:tag_name
实例:driver.find_element_by_id(“iptUsername”).tag_name

13.删除浏览器所有的cookies

方法:delete_all_cookies()
实例:driver.delete_all_cookies()

14.删除指定的cookie

方法:delete_cookie(name)
实例:deriver.delete_cookie(“my_cookie_name”)

15.关闭浏览器

方法:close()
实例:driver.close()

16.关闭浏览器并且退出驱动程序

方法:quit()
实例:driver.quit()

17.返回上一页

方法:back()
实例:driver.back()

18.清空输入框

方法:clear()
实例:driver.clear()

19.浏览器窗口最大化

方法:maximize_window()
实例:driver.maximize_window()

20.查看浏览器的名字

方法:name
实例:drvier.name

21.返回当前会话中的cookies

方法:get_cookies()
实例:driver.get_cookies()

22.根据cookie name 查找映射Value值

方法:driver.get_cookie(cookie_name)
实例:driver.get_cookie(“NET_SessionId”)

23.截取当前页面

方法:save_screenshot(filename)
实例:driver.save_screenshot(“D:\Program Files\Python27\NM.bmp”)

发布了128 篇原创文章 · 获赞 24 · 访问量 4235

猜你喜欢

转载自blog.csdn.net/return_min/article/details/103646599