IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 使用Selenium+Chromedriver模拟浏览器行为获取数据 -> 正文阅读

[开发测试]使用Selenium+Chromedriver模拟浏览器行为获取数据

关于Ajax的响应结果的获取

 ## 我这里用的方法是Selenium+Chromedriver模拟浏览器

Selenium

1. Selenium

 1.什么是selenium?
	(1Selenium是一个用于Web应用程序测试的工具。
	(2Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。
	(3)支持通过各种driver(FirfoxDriverIternetExplorerDriverChromeDriver)驱动真实浏览器完成测试。
	(4)selenium也是支持无界面浏览器操作的。
2.为什么使用selenium?
  模拟浏览器功能,自动执行网页中的js代码,实现动态加载
3.如何安装selenium?
	(1)操作谷歌浏览器驱动下载地址
	http://chromedriver.storage.googleapis.com/index.html
	(2)谷歌驱动和谷歌浏览器版本之间的映射表
	http://blog.csdn.net/huilan_same/article/details/518966723)查看谷歌浏览器版本
	谷歌浏览器右上角‐‐>帮助‐‐>关于
	(4)pip install selenium(安装pyinstaller中详细介绍了怎么用命令行安装模块)
4.selenium的使用步骤?
	(1)导入:from selenium import webdriver2)创建谷歌浏览器操作对象:
	path = 谷歌浏览器驱动文件路径
	browser = webdriver.Chrome(path)3)访问网址
	url = 要访问的网址
	browser.get(url)

以百度贴吧为例,学习简单的Selenium+Chromedriver的使用**

	**这里解析我用的是xpath+XPath Helper ,也可以用正则**
贴吧中帖子信息获取
要求:
    1 用户输入吧名,获得第一页中所有的帖子
    2 帖子需要包含:名称,作者,最后回复人
    3 将帖子信息保存成到文件中
    
过程:利用selenium加Chromedriver模拟浏览器行为获取数据(我获取的实时数据)ajax请求
     chromedriver.exe我是用了自己电脑版本的,
     先通过模拟浏览器搜索自己要搜的页面,然后再获取自己想要的数据(数据解析我是用了xpath以及XPath Helper插件)
     
难点:要获取的数据是Ajax请求的

代码如下:

from lxml import etree
from selenium import webdriver

if __name__ == '__main__':
    name = input("请输入要搜索的贴吧名称:")
    # 进行转码
    # name=urllib.parse.urlencode(name)
    url = "http://tieba.baidu.com/f?kw={}&ie=utf-8&pn=0".format(name)
    path = "chromedriver.exe"
    browser = webdriver.Chrome(path)
    # 类似于requests.get(url)
    browser.get(url)
    content = browser.page_source
    print(content)
    tree = etree.HTML(content)
    li_list = tree.xpath('//div/ul[@id="thread_list"]/li')
    message=[]
    for i in range(1, len(li_list)):
        mes = {}
        # 这里着实写的有些复杂,不过我是一步一步的 可以自己改良
        name = li_list[i].xpath('./div/div[2]/div[1]/div[1]/a/text()')[0]
        author = li_list[i].xpath('./div/div[2]/div[1]/div[2]/span[1]/@title')[0].split(':')[1]
        final_res = li_list[i].xpath('./div/div[2]/div[2]/div[2]/span[1]/@title')[0].split(':')[1]
        mes["名称"]=name
        mes["作者"]=author
        mes["最后回复人"]=final_res
        message.append(mes)
    with open("贴吧.json",'w',encoding='utf-8')as fp:
        fp.write(str(message))

在这里插入图片描述
在这里插入图片描述

json数据格式化快捷键:ctrl+alt+L

在这里插入图片描述

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 16:15:41  更:2021-12-14 16:17:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 7:51:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码