【python】用ChatGPT使用爬虫

news/2024/7/19 10:11:55 标签: python, chatgpt, 爬虫

文章目录

  • 1 安装使用
  • 2 实例

1 安装使用

VSCode中安装相关的插件就可以配合chatgpt来实现一些简单的爬虫操作,只能应对比较简单的场景.
安装插件
chatGPT-ChatMoss

2 实例

给AI发送
python 爬取无锡七日天气
回复如下:
要爬取无锡七日天气,可以使用Python中的第三方库 requests 和 Beautiful Soup。以下是详细步骤:

  1. 导入必要的库
python">import requests
from bs4 import BeautifulSoup
  1. 发送GET请求获取网页内容
python">url = "http://www.weather.com.cn/weather/101190201.shtml"
response = requests.get(url)
  1. 解析网页内容
python">soup = BeautifulSoup(response.content, "html.parser")
  1. 找到需要的天气信息所在的标签
python">weather_data = soup.select(".t>li")
  1. 提取天气信息并输出
python">for weather in weather_data:
    # 获取日期、天气状况、最高温度和最低温度
    date = weather.select_one(".date").get_text()
    condition = weather.select_one(".wea").get_text()
    high_temperature = weather.select_one(".tem span").get_text()
    low_temperature = weather.select_one(".tem i").get_text()

    # 打印天气信息
    print(date, condition, high_temperature, low_temperature)

完整代码如下:

python">import requests
from bs4 import BeautifulSoup

url = "http://www.weather.com.cn/weather/101190201.shtml"

response = requests.get(url)

soup = BeautifulSoup(response.content, "html.parser")

weather_data = soup.select(".t>li")

for weather in weather_data:
    date = weather.select_one(".date").get_text()
    condition = weather.select_one(".wea").get_text()
    high_temperature = weather.select_one(".tem span").get_text()
    low_temperature = weather.select_one(".tem i").get_text()

    print(date, condition, high_temperature, low_temperature)

但是上述实际运行是存在一些小问题的。

打印结果如下: 这个很明显就是date这个数据为None

None <p class="wea" title="多云">多云</p> <span>28</span> <i>17℃</i>
None <p class="wea" title="多云">多云</p> <span>27</span> <i>15℃</i>
None <p class="wea" title="多云">多云</p> <span>24</span> <i>12℃</i>
None <p class="wea" title="阴转小雨">阴转小雨</p> <span>20</span> <i>15℃</i>
None <p class="wea" title="阴">阴</p> <span>15</span> <i>13℃</i>
None <p class="wea" title="小雨">小雨</p> <span>19</span> <i>14℃</i>
None <p class="wea" title="小雨转晴">小雨转晴</p> <span>16</span> <i>8℃</i>

继续追问机器人:

优化下代码,没有获取到天数,并且这个get_text有报错.

机器人直接回复:

以下是优化后的代码,已解决上述问题:

python">import requests
from bs4 import BeautifulSoup

url = "http://www.weather.com.cn/weather/101190201.shtml"

response = requests.get(url)

soup = BeautifulSoup(response.content, "html.parser")

weather_data = soup.select(".t li")

for weather in weather_data:
    # 获取日期、天气状况、最高温度和最低温度
    date = weather.select_one("h1").get_text()
    condition = weather.select_one(".wea").get_text()
    high_temperature = weather.select(".tem span")[0].get_text()
    low_temperature = weather.select(".tem i")[0].get_text()

    # 打印天气信息
    print(date, condition, high_temperature, low_temperature)

在优化代码时,我们对原有代码进行了以下改进:

  • 将CSS选择器中的“>”删除,因为它只会选择直接子元素,导致无法获取到所有的天气信息。
  • 由于天数信息并不在 “.date” 标签内,所以将日期信息从该标签中提取出来。在这里,我们使用了 h1 标签来获取日期信息。
  • 使用 select() 方法来选取多个元素,并且使用索引 [0] 来定位到需要的元素,因为 .select_one() 方法只能返回单个元素,如果要选取多个元素,需要使用 select() 方法。同时,我们还修改了 “.tem span” 和 “.tem i” 的类选择器,以便正确获取最高温度和最低温度。
  • 在使用 get_text() 方法时,需要确保该元素存在并且不为空。如果该元素不存在或为空,会导致 AttributeError 异常。

这一次就非常好用了.

打印出的结果如下:

19日(今天) 多云 28 17℃
20日(明天) 多云 27 15℃
21日(后天) 多云 24 12℃
22日(周六) 阴转小雨 20 15℃
23日(周日) 阴 15 13℃
24日(周一) 小雨 19 14℃
25日(周二) 小雨转晴 16 8℃

http://www.niftyadmin.cn/n/239962.html

相关文章

操作系统前置知识

进程 程序存储在磁盘之中&#xff0c;需要加载内存才能执行&#xff0c;包含堆空间、栈空间、全局和静态变量数据、代码&#xff0c;具体执行效果如下所示&#xff1a; 所谓的进程概念就是操作系统为了执行某个程序为其分配的内存资源&#xff0c;该内存资源并不是连续的&…

C++ 引用

什么是引用 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同一块内存空间。&#xff08;语法层面来讲&#xff09; 但在底层实际上引用是开辟空间的&#xff0c;类似于指针 …

CAMX大气臭氧来源解析模拟

查看原文>>>基于CAMX大气臭氧来源解析模拟与臭氧成因分析实践技术应用 随着我国经济快速发展&#xff0c;我国面临着日益严重的大气污染问题。大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果&#xff0c;同时气象因素是控制大气污染的关键自然因…

项目文档规范及总体布局

软件文档可以分为开发文档和产品文档两大类&#xff0c;交付用户还有用户文档。 1|1开发文档 软件开发计划需求规格说明书软件概要设计说明数据库设计说明软件详细设计说明可执行程序生成说明软件测试计划软件测试说明软件测试报告安装部署手册源代码交付说明上线部署方案上线…

新库上线 | CnOpenData中国汽车能源消耗量数据

中国汽车能源消耗量数据 一、数据简介 工业和信息化部组织制定的《乘用车燃料消耗量限值》强制性国家标准&#xff08;GB19578-2021&#xff09;于2021年7月1日起正式实施&#xff0c;该标准规定了燃用汽油或柴油燃料、最大设计总质量不超过3500kg的M1类车辆在今后一段时期的燃…

DS1302

DS1302时钟芯片简介 DS1302是DALLAS公司推出的涓流充电时钟芯片&#xff0c;内含一个实时时钟/日历和31字节静态RAM&#xff0c;可以通过串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息&#xff0c;每个月的天数和闰年的天数可自动调整&a…

什么是 MVVM 模式?Vue.js 采用了什么思想实现?

MVVM 模式 MVVM 是一种前端架构模式&#xff0c;它将界面的数据和行为分离&#xff0c;使得开发者可以更加专注于业务逻辑的开发。MVVM 的核心是数据绑定&#xff0c;它通过建立数据模型和视图模型之间的关联&#xff0c;实现数据的自动双向绑定&#xff0c;从而让数据变化自动…

HTTP超文本传输协议

1、 浏览器与服务器通信过程 浏览器与 web 服务器在应用层通信使用的是 HTTP 协议&#xff08;超文本传输协议&#xff09;&#xff0c;而 HTTP协议在传输层使用的是 TCP 协议。那么浏览器需要和 web 服务器三次握手建立连接后&#xff0c;才可以发送 HTTP 请求报文&am…