pyppeteer和requests简单应用

2024-04-15 13:52

本文主要是介绍pyppeteer和requests简单应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

pyppeteer和requests简单应用

本文章只是分享pyppeteer技术。有些反扒网站可以使用pyppeteer库,完整代码没有分享。
获取相关开发工具软件,可以关注公众号:爬虫探索者
发送下面图片的关键字可以获取对应软件。sql指的是Navicat
破解教程可以参考主页其他文章。

在这里插入图片描述

运行环境

pip install -i https://mirrors.aliyun.com/pypi/simple pyppeteer
pip install -i https://mirrors.aliyun.com/pypi/simple requests
pip install -i https://mirrors.aliyun.com/pypi/simple lxml

开始的办法

第一次尝试的时候使用普通的requests方法,补充headers获取数据,但是发现最后获取的数据都是假的,今天正好在学习pyppeteer库就尝试了一下。

Pyppeteer的使用

launch:表示打开一个浏览器
newPage:通过返回的browser对象创建页签
setViewPort:设置显示大小
evaluateOnNewDocument:执行JavaScript代码
goto:前往某一个url地址
screenshot:请求之后的内容截图保存

主函数

headless:表示无头模式,设置为False会正常显示页面,默认为True无头模式。
userDataDir:保存登录信息。
args:设置了浏览器显示比例,可以不设置,不过显示的可能不太好看。

async def main():# userDataDir实现用户持久化,保存登录信息,每次运行加载browser = await launch(headless=False, userDataDir='./userdata', args=[f'-window-size={width}, {height}'])page = await browser.newPage()await page.setViewport({'width': width, 'height': height})await page.evaluateOnNewDocument('Object.defineProperty(navigator, "webdriver", {get: () => undefined})')  # 防止检测到await page.goto('股友url')  # 请求的地址await page.screenshot(path='guba.png')  # 截图查看到的信息await page.click('.graylink')  # 模拟点击查看更多await asyncio.sleep(2)  # 第一次运行延长时间,先登录await parse_content(await page.content())  # 调用解析协程,获取对应内容await browser.close()

解析响应内容

async def parse_content(content):html = etree.HTML(content)trs = html.xpath('//table[@class="secontent"]/tbody/tr')for tr in trs:code = tr.xpath('./td/a/text()')[0]name = tr.xpath('./td/a/text()')[1]current_price = tr.xpath('./td/span/text()')[0]die_price = tr.xpath('./td/span/text()')[1]zhang_price = tr.xpath('./td/span/text()')[2]huanshou = tr.xpath('./td[last()-1]/text()')[0]chengjiao = tr.xpath('./td[last()]/text()')[0]print(code, name, current_price, die_price, zhang_price, huanshou, chengjiao)asyncio.get_event_loop().run_until_complete(main())

这篇关于pyppeteer和requests简单应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/906000

相关文章

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像