selenium初认识
2020-03-24 本文已影响0人
刘年
1 安装selenium和foxi
利用 启动百度网页
两种方式
注意,一个很重要的东西,webdriver.Firefox一定不能写成webdriver.firefox
小写会出错
- 1
将驱动放在任意非中文字符目录下,启动即可
from selenium import webdriver
import time
driver_path =r"C:\Drivers\firefox\geckodriver.exe"
driver =webdriver.Firefox(executable_path=driver_path)
driver.get('http://www.baidu.com')
#页面关闭
#设置5秒以后关闭
time.sleep(5)
driver.close()
#浏览器关闭
# driver.quit()
- 2 打开网页
将驱动程序放在python程序Scripts文件夹里,即可以不用设置路径,默认打开
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
#页面关闭
#设置5秒以后关闭
time.sleep(5)
driver.close()
#浏览器关闭
# driver.quit()
- 3 在数据框中输入数据
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
# inputtag = driver.find_element_by_class_name('s_ipt')
inputtag = driver.find_element_by_xpath('//input[@id="kw"]')
inputtag.send_keys('python')
image.png
主要分为两类方法,找标签属性法,或者用xpath或css选择法
- 4 得到网页源代码进行分析抓取
如果只是进行抓取数据分析的话,建议还是用lxml xpath,速度比较快
from selenium import webdriver
from lxml import etree
import time
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
text = driver.page_source
HTMl =etree.HTML(text)
print(type(text))
print(type(HTMl))
结果
<class 'str'>
<class 'lxml.etree._Element'>
- 5 操作表单
- 5.1 提交数据
from selenium import webdriver
profile_directory = r'C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\66c0hw86.sss'
profile = webdriver.FirefoxProfile(profile_directory)
driver = webdriver.Firefox(profile)
driver.get("https://www.baidu.com")
#找到要填写的表单
inputtag = driver.find_element_by_name('wd')
#填写要搜索的内容
inputtag.send_keys('python')
#找到要点击的按钮
submittag = driver.find_element_by_id('su')
#点击按钮
submittag.click()
其中关于selenium+python+firefox解决不安全连接的方法,请参考文章selenium+python+firefox解决不安全连接的方法
- 5.2 下拉选择
from selenium import webdriver
#处理下拉选择一定要用这个类
from selenium.webdriver.support.ui import Select
profile_directory = r'C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\66c0hw86.sss'
profile = webdriver.FirefoxProfile(profile_directory)
driver = webdriver.Firefox(profile)
#暂时找不到例子,内容不完整
driver.get(" ")
selectBN = Select(driver.find_element_by_name(""))
selectBN.select_by_index('')