Python爬虫怎么用硒模拟用户操作?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
硒是一个网络的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是硒可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。
硒可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。
硒自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。
先下载硒webdriver geckodriver。exe”,下载好后放到python目录里面;
firefox的目录也要添加到环境变量中,
硒库里有个叫WebDriver的API.WebDriver有点儿像可以加载网站的浏览器,但是它也可以像BeautifulSoup或者其他选择器对象一样用来查找页面元素,与页面上的元素进行交互(发送文本,点击等),以及执行其他动作来运行网络爬虫。
<强>硒快速入门强>
# !/usr/bin/env python #,- *安康;编码:utf-8 - * 得到selenium import  webdriver #,要想调用键盘按键操作需要引入钥匙包 得到selenium.webdriver.common.keys import 钥匙 #创建浏览器对象 时间=driver webdriver.Firefox () driver.get (“http://www.baidu.com") #打印页面标题“百度一下你就知道” print driver.title #生成当前页面快照 driver.save_screenshot (“baidu.png") #,id=発w"是百度搜索框,输入字符串“微博”,跳转到搜索中国页面 driver.find_element_by_id (“kw") .send_keys (u"微博“) #,id=皊u"是百度搜索按钮,单击(),是模拟点击 driver.find_element_by_id (“su") .click () #,获取新的页面快照 driver.save_screenshot (u"微博.png") #,打印网页渲染后的源代码 print driver.page_source #,获取当前页面饼干 print driver.get_cookies () #,ctrl + a 全选输入框内容 driver.find_element_by_id (“kw") .send_keys (Keys.CONTROL & # 39;一个# 39;) #,ctrl + x 剪切输入框内容 driver.find_element_by_id (“kw") .send_keys (Keys.CONTROL & # 39; x # 39;) #,输入框重新输入内容 driver.find_element_by_id (“kw") .send_keys (“test") #,模拟进入回车键 driver.find_element_by_id (“su") .send_keys (Keys.RETURN) #,清除输入框内容 driver.find_element_by_id (“kw") .clear () #,生成新的页面快照 driver.save_screenshot (“test.png") #,获取当前url print driver.current_url #,关闭当前页面,如果只有一个页面,会关闭浏览器 #,driver.close () #,关闭浏览器 driver.quit ()
<强> 1。页面操作强>
假如有下面的输入框
& lt; input 类型=皌ext", name=皍ser-name", id=皃asswd-id",/在
寻找方法
#,获取id标签值 时间=element driver.find_element_by_id (“passwd-id") #,获取名字标签值 时间=element driver.find_element_by_name (“user-name") #,获取标签名值 时间=element driver.find_elements_by_tag_name (“input") #,也可以通过XPath来匹配 element =, driver.find_element_by_xpath(“//输入[@ id=& # 39; passwd-id& # 39;]“)
<强> 2。定位元素的方法强>
find_element_by_id find_elements_by_name find_elements_by_xpath find_elements_by_link_text find_elements_by_partial_link_text find_elements_by_tag_name find_elements_by_class_name find_elements_by_css_selector
<强> 3。鼠标动作强>
# !/usr/bin/env python #,- *安康;编码:utf-8 - * 得到selenium import  webdriver #,要想调用键盘按键操作需要引入钥匙包 得到selenium.webdriver.common.keys import 钥匙 得到selenium.webdriver import  ActionChains #创建浏览器对象 时间=driver webdriver.Firefox () driver.get (“http://www.baidu.com") #鼠标移动到某处 时间=action1 driver.find_element_by_id (“su") ActionChains(司机).move_to_element (action1) .perform () #鼠标移动到某处单击 时间=action2 driver.find_element_by_id (“su") ActionChains(司机).move_to_element (action2) .click (action2) .perform () #鼠标移动到某处双击 时间=action3 driver.find_element_by_id (“su") ActionChains(司机).move_to_element (action3) .double_click (action3) .perform () #,鼠标移动到某处右击 时间=action4 driver.find_element_by_id (“su") ActionChains(司机).move_to_element (action4) .context_click (action4) .perform ()Python爬虫怎么用硒模拟用户操作