在linux和windows中使用selenium
在linux和windows中使用selenium
一. seleniumselenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器
1. 环境安装下载安装selenium:
pip install selenium
下载浏览器驱动程序:
查看驱动和浏览器版本的映射关系:
2. 编码流程
- 导包: from selenium import webdriver
- 实例化某一款浏览器对象
- 制定相关的行为动作
from selenium import webdriver from time import sleep # 后面是你的浏览器驱动位置,记得前面加r‘‘,‘r‘是防止字符转义的 driver = webdriver.Chrome(r‘./chromedriver.exe‘) # 用get打开百度页面 driver.get("http://www.baidu.com") # 查找页面的“设置”选项,并进行点击 driver.find_elements_by_link_text(‘设置‘)[0].click() sleep(2) # # 打开设置后找到“搜索设置”选项,设置为每页显示50条 driver.find_elements_by_link_text(‘搜索设置‘)[0].click() sleep(2) # 选中每页显示50条 m = driver.find_element_by_id(‘nr‘) sleep(2) m.find_element_by_xpath(‘//*[@id="nr"]/option[3]‘).click() m.find_element_by_xpath(‘.//option[3]‘).click() sleep(2) # 点击保存设置 driver.find_elements_by_class_name("prefpanelgo")[0].click() sleep(2) # 处理弹出的警告页面 确定accept() 和 取消dismiss() driver.switch_to_alert().accept() sleep(2) # 找到百度的输入框,并输入 美女 driver.find_element_by_id(‘kw‘).send_keys(‘美女‘) sleep(2) # 点击搜索按钮 driver.find_element_by_id(‘su‘).click() sleep(2) # 在打开的页面中找到“Selenium - 开源中国社区”,并打开这个页面 driver.find_elements_by_link_text(‘美女_百度图片‘)[0].click() sleep(3) # 关闭浏览器 driver.quit()
import time from selenium import webdriver bro = webdriver.Chrome(executable_path="./chromedriver.exe") bro.get("https://www.baidu.com") time.sleep(2) # 标签定位 kw = bro.find_element_by_id(‘kw‘) kw.send_keys("汽车") time.sleep(2) btn = bro.find_element_by_id("su") btn.click() time.sleep(2) bro.close()
展示百度搜索
import time from selenium import webdriver bro = webdriver.Chrome(executable_path="./chromedriver.exe") bro.get(‘https://xueqiu.com‘) time.sleep(5) # 执行js实现滚轮向下滑动 js = ‘window.scrollTo(0,document.body.scrollHeight)‘ bro.execute_script(js) time.sleep(2) bro.execute_script(js) time.sleep(2) bro.execute_script(js) time.sleep(2) bro.execute_script(js) time.sleep(2) a_tag = bro.find_element_by_xpath(‘//*[@id="app"]/div[3]/div/div[1]/div[3]/div[2]/a‘) a_tag.click() time.sleep(5) # 获取当前浏览器页面数据 print(bro.page_source) bro.quit()
雪球网加载更多数据 4. 浏览器创建Selenium支持非常多的浏览器,如Chrome、Firefox、Edge等,还有Android、BlackBerry等手机端的浏览器。另外,也支持无界面浏览器PhantomJS。
from selenium import webdriver browser = webdriver.Chrome() browser = webdriver.Firefox() browser = webdriver.Edge() browser = webdriver.PhantomJS() browser = webdriver.Safari() 5. 元素定位
webdriver 提供了一系列的元素定位方法,常用的有以下几种:
find_element_by_id() find_element_by_name() find_element_by_class_name() find_element_by_tag_name() find_element_by_link_text() find_element_by_partial_link_text() find_element_by_xpath() find_element_by_css_selector()
注意:
1、find_element_by_xxx找的是第一个符合条件的标签,find_elements_by_xxx找的是所有符合条件的标签。
2、根据ID、CSS选择器和XPath获取,它们返回的结果完全一致。
温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/9628.html