selenium的基本操作
1: 安装浏览器(火狐)驱动, 并配置和pycharm一样的环境变量
geckodriver.exe: 是selenium用来打开火狐浏览器的驱动, 需要将它和python.exe放在一起
Chromedriver.exe 是谷歌的驱动
注意: 不兼容的时候回出现启动错误, geckodriver.exe的版本必须和火狐浏览器的版本兼容
2: 在pycharm中, 安装selenium
方法一:
方法二:
在cmd命令行里面敲 pip install selenium
3: 网页中通过js渲染的数据, 爬虫的解决办法
[1] :去静态源代码中查找
<script> var infolist = { "name": "123",} </script>
[2] :抓包或者网络请求中, 查看是否有类似的json的get请求, 直接请求这个json的api拿到数据
[3] :使用phantomjs或者selenium进行访问动态页面时, 而静态页面仍然使用requests进行获取
4: selenium基本用法
[1] :selenium是一种测试框架, 可以应用在爬虫项目中
[2] :selenium框架提供了许多元素定位的方法 find_element_by_id() 这些方法底层使用python代码写的, 提取速度上回慢一点, 通常情况下, 使用phantomjs/ selenium 也只是获取js渲染后的网页源代码, 而网页中数据的提取, 还可以使用xpath, re, bs4, etree 等
5: selenium 框架的元素定位
[1] :通过id定位到输入框 keyword = driver.find_element_by_id(' ')
[2] :在向输入框输入内容之前, 可以先将之前的旧内容清空 keyword.clear()
[3] :向输入框输入内容send_keys keyword.send_keys(' ')
[4] :通过class定位到搜索按钮 search_btn = driver.find_element_by_class_name('s_btn')
[5] :点击......按钮 search_btn.click()
[6] :通过一个连接标签的文本内容定位标签 driver.find_element_by_link_test('贴吧')
driver.find_element_by_xpath(' ')
[7] :批量获取元素 res = driver.find_element_by_css_selector('.result')
[8] :获取js渲染后的网页源代码 driver.page_source
[9] :将浏览器driver对象退出 driver.close()