python 爬虫利器 ---- selenium
这里先来介绍一下爬虫浏览器,普通爬虫获取用抓包的方式获取要获取信息的api,ajax,json,js等网址,通过请求网址来获取相对应数据。
然而,总有一些没办法或者分析比较困难的,这个时候就可以使用模拟浏览器大发神威了。
再来介绍一下 爬虫浏览器 的种类有 Chrome,Firefox,IE,PhantomJS 等。
其中PhantomJS 内存消耗较小,无可视化界面;Chrome,Firefox有可视化界面,下载的插件要注意与你对应浏览器的版本形成匹配,放置于对应浏览器根目录下(调用时如果脚本不想添加路径,可将浏览器根目录路径添加至Path环境变量)。
注:这里的浏览器路径不可用中文,否则脚本会报错,显示未找到脚本。
安装流程:
- 下载对应的浏览器插件(注意版本)。
- 将下好的驱动插件放入文件夹,并将路径配置进Path环境变量。
- 打开cmd命令行,输入 pip install selenium。
- 程序调用。
selenium 基本使用
from selenium import webdriver
# 火狐浏览器
browser = webdriver.Firefox()
# 打开网页
browser.get('https://www.baidu.com')
# 关闭浏览器
browser.close()
-
add_argument
启动参数 作用 –user-agent=“User_Agent” 设置请求头的User-Agent window-size=长,宽 设置浏览器分辨率 headless 无界面运行 start-maximized 最大化运行 incognito 隐身模式 disable-javascript 禁用javascript disable-infobars 禁用浏览器正在被自动化程序控制的提示 -proxy-server=“http://…” 添加代理服务器 -blink-settings=imagesEnabled=false 禁止加载图片 注:启动时的更改参数
例:Options = webdriver.FirefoxOptions() Options.add_argument('--headless') # 浏览器不提供可视化页面 browser = webdriver.Firefox(firefox_options=Options) # 启动浏览器
-
selenium 查找元素
方法 作用 ind_element_by_xpath() 通过Xpath查找 ind_element_by_class_name() 通过class属性查找 ind_element_by_css_selector() 通过css选择器查找 ind_element_by_id() 通过id查找 ind_element_by_link_text() 通过链接文本查找 ind_element_by_name() 通过name属性进行查找 ind_element_by_partial_link_text() 通过链接文本的部分匹配查找 ind_element_by_tag_name() 通过标签名查找 例:
browser.find_element_by_xpath('//a/span[@class="nav-line-1"]').text
-
Cookies
方法 作用 browser.get_cookies() 获得所有cookie rowser.get_cookie(name) 获得指定cookie rowser.add_cookie(dict) 添加cookie rowser.delete_cookie(name) 删除指定cookie rowser.delete_all_cookies() 删除所有cookie 例:
# 注:这里添加cookies 若果不止一条属性需要循环添加 for dict in dicts: browser.add_cookie(dict)