一定是我的提问方式不对!
可能我是一个很不善于提问的人,尤其是和人类以外的物种交流,总会发生一些奇奇怪怪的对话。
关于全英羽毛球公开赛的资料,网上有很多,按爬取和解决问题的逻辑来看,搜索整合数据后再输出应该不是太难的事儿。尤其是对于百科这类网站的数据,除了个别因素,多数内容都能用来学习。
先公布正常答案:
换句话说:ChatGPT,开卷考试,告诉答案在哪一行,还为什么还回答不对问题呢?
下面这一张,可能是最离谱的答案了,里面汇聚了各行各业的知名人士。
难道,真的要告诉你:用 php 或者 python 抓取网页 'https://zh.m.wikipedia.org/wiki/全英羽毛球公开锦标赛' 中“夺冠次数较多者”后面的第一个 table 数据中前20列并输出姓名、男单、女单、男双、女双、混双和合计夺冠次数?
既然想到了,那就试试:
import requests
from bs4 import BeautifulSoup
# 获取网页内容
url = "https://en.wikipedia.org/wiki/All_England_Open_Badminton_Championships"
html = requests.get(url).text
# 解析HTML
soup = BeautifulSoup(html, 'html.parser')
# 找到“Multiple winners”后面的第一个table
table = soup.find('table', {'class': 'wikitable sortable'})
# 输出前20行数据
print('{:<30} {:<10} {:<10} {:<10} {:<10} {:<10} {:<10}'.format('Name', 'MS', 'WS', 'MD', 'WD', 'XD', 'Total'))
for row in table.find_all('tr')[1:21]:
cols = row.find_all('td')
name = cols[0].get_text().strip()
ms = cols[1].get_text().strip()
ws = cols[2].get_text().strip()
md = cols[3].get_text().strip()
wd = cols[4].get_text().strip()
xd = cols[5].get_text().strip()
total = cols[6].get_text().strip()
print('{:<30} {:<10} {:<10} {:<10} {:<10} {:<10} {:<10}'.format(name, ms, ws, md, wd, xd, total))
可是输出的结果居然是:
Name MS WS MD WD XD Total
George Alan Thomas 4 1 9 0 8 21
Erland Kops 5 0 2 0 1 8
Rudy Hartono 8 0 0 0 0 8
Gillian Gilks 0 1 0 4 5 10
Eddie Choong 5 0 4 0 1 10
Morten Frost 4 0 0 0 0 4
Lin Dan 6 0 0 0 0 6
Peter Gade 5 0 0 0 0 5
Nora Perry 3 3 0 0 0 6
Yang Yang (singles) 4 0 0 0 0 4
Christian Hadinata 0 0 4 4 4 12
Rexy Mainaky 0 0 6 1 4 11
Zhao Yunlei 0 2 2 2 5 11
Li Lingwei 0 4 0 0 0 4
Park Joo-bong 0 0 8 1 1 10
Kim Dong-moon 0 0 8 0 0 8
Gao Ling 0 0 0
哪里出了问题?有没有人帮看下,python我不熟。结果可以说是让人很失望了。
现在我的问题是,如何提问,才能让ChatGPT生成正确答案。虽然我直接看维基百科可以得到答案,但在内心深入始终希望有一天,当人类只能通过对话提问的方式,来面对ChatGPT这样的唯一终端时,它不以欺骗我们百科全书看得少。
页面更新:2024-04-21
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号