如何使用Python WebDriver爬取ChatGPT内容(完整教程)

   日期:2024-12-25    作者:lmk6t 移动:http://oml01z.riyuangf.com/mobile/quote/20139.html

虽然我们能用网页版chatGPT来聊天、写文章,但是我们采集大量的内容,就得不断地手动输入提问来获取答案,并且将结果复制到数据库来保存。如果整个过程能使用程序来做自然要节省很多的人力,精力和时间。

Python webdirver 模拟浏览器的方式来实现,刚好能实现以上功能。

另外之所以不选择API 是因为以下原因

  • 普通开发者(国内)获取API KEY 是有困难的,需要海外手机号 + 信用卡等一系列条件,但是如果只是网页端,我们仅仅需要登录或者未登录的方式就可以直接聊天

  • 网页端无需调整各项参数,可以直接交互获取内容,而且内容质量更高

当然,如果你有条件用API 或者直接通过 wss交互获取内容的,到这儿可以直接结束了。

完整源码在文章末尾哦

准备自己的梯子

ChatGpt属于海外项目,国内的小伙伴,翻墙得找好自己的梯子(代理,这里自己有啥用啥即可。

安装Python 环境

Python要求:3.10 +

安装 Python Selenium

 

其他扩展库说明:取决于自己电脑缺什么就安装什么。后面完整代码会提供完整的 requirements.txt

浏览器

这里以Chrome浏览器为准。也就是你本地必须要安装Chrome浏览器,并且获取其安装路径。

比如:C:Program FilesGoogleChromeApplicationchrome.exe

操作系统

这里以 windows 作为开发环境。

开发工具

自己什么顺手用什么。

这里讲个程序界的笑话:传说级别的开发者据说用的记事本来开发。

这里只介绍主要的代码

浏览器控制

使用程序实现浏览器的控制,这包括浏览器的打开,关闭,以及代理配置。

创建 browser_manage.py

 

初始化selenium

创建爬虫脚本 spider.py

 

进入到目标页面

文件:spider.py

 

页面等待除了以上的方案也可以用其他方法

 

发起询问

发起新的提问

每次提问都应该是基于一个新窗口来提问。如果你的问题需要上下文的基础来回答,可以直接跳过这里。

新询问输入框可以根据 button data-testid="create-new-chat-button" 来定位。

 

定位到输入框

输入框使用的是div contentediable作为文本域。其id为 prompt-textarea

 

创建询问队列

因为我们的目标是自动化对问题列表发起询问,而不是一次性询问。所以需要创建一个问题队列。问题队列可以来源于数据库或者队列文件。这里为了演示,直接创建一个list

 

输入问题

这里我们按行来输入:一次输入一行。

 

等待数据响应

可以根据回答结束后,出现的交互按钮来确认是否回答完毕

 

也可以使用以下方法来校验

 

获取响应数据

通过 class="markdown" 来获取数据。

 

数据清洗

具体的清洗规则,看具体的业务需求。大多数清洗,需要将一些总结类的语句删除,不合法的返回内容删除。这里不提供相应的清洗的方案。

至此,一个完整的数据链就已经完结。

完整源码

browser.py

 

spider.py

 

requirements.txt

 

获取扩展源码

扩展源码是基于 chatgpt聊天页面,通过多个浏览器并行数据爬取,包含以下功能

  1. 基于数据库创建问题队列

  2. 创建多个浏览器窗口多线程并行运行,提高产量和效率

  3. 解决人工校验-自动化进行人工校验

  4. 为多个浏览器配置不同的代理方案

  5. 代理配置,为浏览器自动化分配代理

  6. 通过web端进行浏览器管理,代理管理,代理分配等

需要以上扩展源码,QQ:1186969412


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号