1、path环境变量的作用:
为了让cmd找到各种命令exe工具,配path就找exe所在目录配置就可以了。
C:\Anaconda3\Scripts—找pip.exe C:\Anaconda3----python.exe
2.修改完path,要重启cmdwhere 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()扫描二维码关注公众号,回复: 8577415 查看本文章
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”)