python爬虫之selenium(1)

python爬虫之selenium(1)

Q1.验证当前页面是动态加载出来的
1.根据URL地址,利用F12开发者工具抓包,Response中返回的是响应数据,利用搜索,判断当前数据是否是通过ajax请求动态加载出来的。
在这里插入图片描述
Q2.如何获取动态加载到的数据
2.利用ALL中所有的包,点击一下,CTRL+F进行全局搜索,找到响应包中含关键字的包,再利用Headers中的URL和下面的参数发请求
在这里插入图片描述

selenium模块的基本使用

  • selenium模块和python之间的关联?

    • 便捷的获取网页中动态加载出来的数据
    • 便捷实现模拟登录
  • 什么是selenium模块?

    • 基于浏览器自动化的一个模块。
  • selenium模块的使用流程

    • 环境安装:pip install selenium

    小插曲:pip显示需要更新,然后总是超时更新失败,百度后,用了这行命令完美解决在这里插入图片描述
    在这里插入图片描述

    • 安装浏览器驱动
      - 下载路径:https://liushilive.github.io/github_selenium_drivers/md/Chrome.html
      - 下载版本对应:谷歌-帮助-关于Google Chrome
    • 实例化一个浏览器对象
      ps:Chrome里面的C大写,否则请求不到
from selenium import webdriver
bro = webdriver.Chrome(executable_path='./chromedriver.exe')
  • 编写基于浏览器自动化的操作代码
from selenium import webdriver
from lxml import etree
from time import sleep

#1.实例化一个浏览器驱动程序
bro = webdriver.Chrome(executable_path='./chromedriver.exe')
#2.让浏览器发一个指定URL的请求
bro.get('http://yjsgk.jsczt.cn/front/glwj/list.do?groupid=160&channel=17')
#3.获取浏览器当前页面的页面源码数据
page_text = bro.page_source
#4.解析数据,获取各单位名称
tree = etree.HTML(page_text)
li_list = tree.xpath('//ul[@id="department"]/li')
for li in li_list:
    name = li.xpath('./a/text()')[0]
    print(name)
#睡眠5s
sleep(5)
#关闭浏览器
bro.quit()

本来源码中没有单位名称,但是利用selenium可以实现捕获动态加载的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值