首页博客网络编程
selenium模块和爬虫的关联
1、便捷的获取网站中动态加载的数据。
2、便捷的实现模拟登录。
selenium模块:
1、基于浏览器自动化的一个模块。
2、模拟人去操作浏览器,通过xpath或者标签定位到元素,通过相应的方法就能在文本框内输入字符,或者定位到按钮点击。
3、不过selenium执行很慢,并且网页没加载完也可能执行下面的代码,会导致报错。
4、selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题,selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器。
selenium使用流程:
1、环境安装:pip install selenium
2、下载一个浏览器的驱动程序
下载路径:http://chromedriver.storage.googleapis.com/index.html
驱动程序和浏览器的映射关系:http://blog.csdn.net/huilan_same/article/details/51896672
3、实例化一个浏览器对象
4、编写基于浏览器自动化的操作代码
发起请求:get(url)
标签定位:find系列的方法
标签交互:send_keys(‘xxx’)
执行js程序:excute_script(‘jsCode’)
前进、后退:back(), forward()
关闭浏览器:quit()
5、selenium处理iframe
如果定位的标签存在于iframe标签之中,则必须使用switch_to.frame(id)
动作链(拖动):from selenium.webdriver import ActionChains
实例化一个动作链对象:action = ActionChains(bro)
click_and_hold(div) :长按且点击操作
move_by_offset(x,y)
perform()让动作链立即执行
action.release()释放动作链对象
导包:
from lxml import etreefrom time import sleepfrom selenium import webdriver123
实例化一个浏览器对象(传入浏览器的驱动成)
bro = webdriver.Chrome(executable_path='./chromedriver.exe')1
让浏览器发起一个指定url对应的请求
bro.get('http://scxk.nmpa.gov.cn:81/xk/')1
page_source获取浏览器当前页面的页面源码数据
page_text = bro.page_source1
解析企业名称
tree = etree.HTML(page_text)li_list = tree.xpath('//ul[@id="gzlist"]/li')for li in li_list: name = li.xpath('./dl/@title')[0] print(name)12345
关闭浏览器(等待5秒)
sleep(5)bro.quit()12
导包
from selenium import webdriverfrom time import sleep12
导入动作链对应的类
from selenium.webdriver import ActionChainsbro = webdriver.Chrome(executable_path='./chromedriver.exe')12
让浏览器发起一个指定url对应的请求
bro.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')1
如果定位的标签是存在于iframe标签之中的则必须通过如下操作在进行标签定位
bro.switch_to_frame('iframeResult') # 切换浏览器标签定位的作用域div = bro.find_element_by_id('draggable')12
动作链
action = ActionChains(bro)1
点击长按指定的标签
action.click_and_hold(div)1
perform()立即执行动作链操作、move_by_offset(x,y) : x水平方向 y竖直方向
for i in range(5): action.move_by_offset(17, 0).perform() sleep(0.5)123
释放动作链
action.release()1
关闭
bro.quit()1
版权声明:本文为CSDN博主「xuexiwd」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xuexiwd/article/details/120574465
声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!
广告位
广告位