python爬虫系列——开始入土(五)
发布日期:2021-06-30 16:33:13 浏览次数:2 分类:技术文章

本文共 1801 字,大约阅读时间需要 6 分钟。

selenium模块

selenium与爬虫

  • 便捷的获取网站中动态加载的数据
  • 便捷实现模拟登录

什么是selenium

基于浏览器自动化的一个模块

selenium使用流程

  • 环境的安装 pip install selenium
  • 下载一个浏览器的驱动程序 下载网站:
  • 通过selenium实例化一个浏览器对象
  • 编辑基于浏览器自动化的操作代码
    • 发起请求: get()
    • 标签定位:find系列方法
    • 标签交互:send_keys(‘xxx’)
    • 执行js程序:excute_script(‘jsCode’)
    • 页面前进,后退:forward(),back()
    • 关闭浏览器:quit()

具体流程操作

根据chrome浏览器的版本,来选择下载对应的驱动程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将下载好的chromedriver程序放置到Google文件夹的chrome配置文件夹中
在这里插入图片描述
将此地址添加到环境变量当中
在这里插入图片描述
打开cmd,输入chromedriver测试是否已经配置成功chrome驱动程序
在这里插入图片描述
基础代码:

from selenium import webdriver# 实例化一个chrome浏览器chrome_driver = 'C:\Program Files\Google\Chrome\Application\chromedriver.exe'driver = webdriver.Chrome(executable_path= chrome_driver)# 让浏览器向指定url发起请求driver.get('https://www.baidu.com')

效果:

在这里插入图片描述

练习:获取页面代码内容

爬取页面:

from selenium import webdriverfrom lxml import etreefrom time import sleep# 实例化一个chrome浏览器chrome_driver = 'C:\Program Files\Google\Chrome\Application\chromedriver.exe'driver = webdriver.Chrome(executable_path= chrome_driver)# 让浏览器向指定url发起请求driver.get('http://scxk.nmpa.gov.cn:81/xk/')# 获取浏览器当前页面的页面源码数据page_text = driver.page_source# 解析数据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)sleep(2)# 关闭实例化浏览器driver.quit()

效果:

在这里插入图片描述

selenium处理iframe

在selenium中,可能会遇到有iframe存在的内嵌页面

页面地址:
在这里插入图片描述
直接选择iframe中的按钮点击按下不会成功,需要切换定位到iframe的作用域当中
核心:iframe = driver.switch_to.frame('iframeResult')

代码:

from selenium import webdriverchrome_driver = 'C:\Program Files\Google\Chrome\Application\chromedriver.exe'driver = webdriver.Chrome(executable_path= chrome_driver)# 让浏览器向指定url发起请求driver.get('https://www.runoob.com/try/try.php?filename=tryjs_events')# 如果定位的标签是存在于iframe标签中的,则必须通过如下此操作再进行标签定位# 定位iframe,切换浏览器标签定位的作用域iframe = driver.switch_to.frame('iframeResult')btn = driver.find_element_by_xpath('//body/button[@type="button"]')btn.click()print(btn)

转载地址:https://kongchengji.blog.csdn.net/article/details/113811685 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Three.js杂记(八)—— 文本几何体
下一篇:python爬虫系列——开始入土(四)

发表评论

最新留言

很好
[***.229.124.182]2024年04月13日 20时34分50秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章