ChatGPT 帮我自动编写 Python 爬虫脚本的详细过程
作者:Python数据开发 发布时间:2021-09-09 09:13:50
都知道最近ChatGPT聊天机器人爆火,我也想方设法注册了账号,据说后面要收费了。
ChatGPT是一种基于大语言模型的生成式AI,换句话说它可以自动生成类似人类语言的文本,把梳理好的有逻辑的答案呈现在你面前,这完全不同于传统搜索工具。
ChatGPT不光可以回答人文、科学、情感等传统问题,还可以写代码、改bug,程序员可就急了,简直是在抢饭碗,所以网上出现各种ChatGPT让你失业的焦虑言论。
俗话说“百闻不如一见”,我试着让ChatGPT用Python去写爬虫脚本,看它到底行不行?
1、爬取知乎上的专栏文章
提问:
帮我用python写代码爬取网站
ChatGPT:
把给到的代码放进PyCharm中跑一遍,发现没有报错,且打印出了内容。
import requests
from bs4 import BeautifulSoup
url = "https://zhuanlan.zhihu.com/p/595050104"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
title = soup.find("h1", class_="Post-Title").text.strip()
body = soup.find("div", class_="Post-RichText").text.strip()
print("Title:", title)
print("Body:", body)
虽然说ChatGPT给出的代码可以执行,但它也提到由于爬取的网站会随时变更,也就是HTML会变动,所以代码可能需要调整才能正常工作。
凡是写过爬虫的同学应该都能理解,人工写的爬虫代码也没法一劳永逸,需要随时改。
这一点ChatGPT提示的很有道理。
后来我测试了medium、百家号上的文章,ChatGPT提供的代码形式几乎和上面一致,没法直接执行获取结果,需要微调后才能跑。
2. 爬取京东某商品的评论
为了给ChatGPT增加难度,我试着让它去爬取某电商网站的用户评论
提问:
请用python写代码爬取这个京东商品的所有用户评论 https://item.jd.com/13652780.html
ChatGPT:
可能这个网页是动态页面,ChatGPT提供的方法并不能爬取评论。
我接着问:
爬取的结果是空值怎么办?
ChatGPT:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nnDP8sph-1676473447460)(null)]
ChatGPT提供了3种可能存在的原因,但并没有帮我修改代码。
于是我又问:
还是空值 请帮我重新写代码爬取
ChatGPT:
这次就牛掰了,它重新用Selenium写了爬虫代码,并告诉我爬取 * 页需要模拟浏览器行为,因此得用selenium技术。
我没有运行去测试代码正确与否,但ChatGPT确实惊艳到我了,能够前后关联对话内容,并给出正确的解决方法。
3.继续更多的测试
上面只是蜻蜓点水的玩玩,ChatGPT就已经吸引到我,
我准备多花时间去测试ChatGPT应对各种爬虫的解决方案,以及它对bug的修复能力。
仅仅从写代码层面看,ChatGPT已经可以媲美中高级程序员的水平了,而且它的知识范畴远超人类最厉害的程序员
ChatGPT能够根据对话生成人想要的内容,这是AI巨大的突破,未来它的应用之广难以想象。
来源:https://blog.csdn.net/m0_59596937/article/details/129052428


猜你喜欢
- 目录先看演示像类一样的访问属性类似字典的访问为什么可以这样?源码解析为什么有类的影子?为什么有字典的影子?先看演示像类一样的访问属性from
- select UNIX_TIMESTAMP(ADDDATE(NOW(),INTERVAL -60 DAY))首先根据now()获得当前时间使
- %matplotlib inline是一个魔法函数(Magic Functions)。官方给出的定义是:IPython有一组预先定义好的所谓
- mysql存储引擎:MySQL服务器采用了模块化风格,各部分之间保持相对独立,尤其体现在存储架构上。存储引擎负责管理数据存储,以及MySQL
- 进入主题1.import turtle as timport matht.pensize(3)t.tracer(10)t.hideturtl
- 到现在为止,你只学习了如何根据特定的条件从表中取出一条或多条记录。但是,假如你想对一个表中的记录进行数据统计。例如,如果你想统计存储在表中的
- create proc p_sword_getblcolumn ( @tblName varchar(200), @fromIndex in
- 1、说明关键词传递以“形参变量名=实参”的形式参与实参关联,根据形参的名称进行参数传递,使实参和形参的顺序不一致。不用担心定义函数时参数的顺
- 根据我们指定的条件检索函数中的元素import matplotlib.pyplot as pltimport numpy as npa =
- 如何用METADATA替换ADOVBS.INC? 在ASP中,使用组件时,如ADO,得先包含
- 前言python爬虫系列文章的第3篇介绍了网络请求库神器 Requests ,请求把数据返回来之后就要提取目标数据,不同的网站返回的内容通常
- 安装模块如果使用的是Linux系统,并且安装了pip,可以直接使用pip安装xlrd, xlwt:pip install xlwtpip i
- 一、前言有时候觉得电影真是人类有史以来最伟大的发明,我喜欢看电影,看电影可以让我们增长见闻,学习知识。从某种角度上而言,电影凭借自身独有的魅
- turtle模块概述Python 标准库中有个 turtle 模块,俗称海龟绘图,它提供了一些简单的绘图工具,可以在标准的应用程序窗口中绘制
- 华为2019在线笔试题,现整理如下,以供之后参考GitHub题目介绍####################################
- 前言: 在项目中,我用到了vue +iview + vue-router 开发; 然后导航条就使用了iview的Menu组件,结果发觉导航条
- 用面向对象的思维解决问题的重点当遇到一个需求的时候不用自己去实现,如果自己一步步实现那就是面向过程;应该找一个专门做这个事的人来做。面向对象
- 引言现在已经产生了一种新职业:Prompt Engineer(提示指令工程师),可见 Prompt 是多么重要,且编写不易。ChatGPT的
- 此文用来正式回复大辉同学的疑问。1、结论:固定宽度只适合功能型网站,不适合希望用户认真阅读的浏览型网站。UCD大社区是浏览型网站,它的定位是
- asp之字符串函数示例用字符串函数对字符串进行截头去尾、大小写替换等操作。函数语 * 能LenLen(string|varname)返回字符串