selenium简介

前言

selenium模块是什么,有什么用?

  • 便捷的获取网站中动态加载的数据

  • 便捷实现模拟登录

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

在使用这个模块之前,要先下载一个浏览器的驱动程序(谷歌浏览器)

下载路径:http://chromedriver.storage.googleapis.com/index.html 驱动程序和浏览器的映射关系:selenium之 chromedriver与chrome版本映射表(更新至v2.46)_灰蓝-优快云博客_chromedriver

案例

之前对药监局实现了一次公司名称抓取,因为发现该页面是ajax动态加载,无法通过直接获取首页页面数据来获得公司名称,之前选择先获取首页数据,再从中获取详情页所对应的id,再对详情页发送请求获取详情页公司名称

这次采用selenum模块实现自动获取公司名称

先实例化一个浏览器对象(传入浏览器的驱动程序),并对网站发起请求,固定写法

 from selenium import webdriver
 from selenium.webdriver.chrome.service import Services = Service(r"./chromedriver.exe")
 driver = webdriver.Chrome(service=s)
 #让浏览器发起指定url请求
 driver.get('http://scxk.nmpa.gov.cn:81/xk/')

休息3s,等待页面加载出来,之后获取浏览器当前页面的页面源码数据e

 from time import sleep
 sleep(3)
 page_text=driver.page_source

利用抓包工具,解析企业名称

通过定位企业名称对应的html页面,发现其在多个li标签下,而li标签上一级标签为ul标签,但是html页面中可能有多个ul标签,但是每个ul标签的id是唯一的。

 from lxml import etree
 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(5)
 driver.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值