赞
踩
DrissionPage 是一个基于 python 的网页自动化工具。
它既能控制浏览器,也能收发数据包,还能把两者合而为一。
可兼顾浏览器自动化的便利性和 requests 的高效率。
它功能强大,内置无数人性化设计和便捷功能。
它的语法简洁而优雅,代码量少,对新手友好。
用于收发数据包的页面对象,只能收发数据包,不能控制浏览器。
用于控制浏览器的对象。除了控制一个页面,还能对浏览器整体进行操作,如调整窗口大小位置、管理文件下载、增删标签页等。
整合SessionPage和ChromiumPage两者功能的页面元素,拥有两者加起来的全部功能。运行时有 s 和 d 两种模式,能够在两种模式间同步登录信息。
顾名思义,SessionPage是一个使用Session(requests 库)对象的页面,它使用 POM 模式封装了网络连接和 html 解析功能,使收发数据包也可以像操作页面一样便利。
# 导入 from DrissionPage import SessionPage from DataRecorder import Recorder # 创建页面对象 page = SessionPage() # 创建记录器对象 recorder = Recorder('music_data.csv') # 请求网站url 网易云音乐 热歌榜 top200 page.get('https://music.163.com/discover/toplist?id=3778678') # 遍历页面上所有 li 元素 获取热歌榜Top200的歌名和url for index,li in enumerate(page.eles('xpath://ul[@class="f-hide"]/li')): music_ranking = index + 1 # 排名 music_title = li.ele('tag:a').text music_url = li('tag:a').attr('href') # 请求歌曲url 获取歌手姓名 page.get(music_url) music_singer = page.ele('xpath://p[@class="des s-fc4"]/span').text # print(music_ranking,music_title,music_singer) # 写入到记录器 recorder.add_data((music_ranking,music_title,music_singer)) recorder.record()
程序生成一个结果文件 data.csv,内容如下图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。