一定是我的提问方式不对!
可能我是一个很不善于提问的人,尤其是和人类以外的物种交流,总会发生一些奇奇怪怪的对话。
关于全英羽毛球公开赛的资料,网上有很多,按爬取和解决问题的逻辑来看,搜索整合数据后再输出应该不是太难的事儿。尤其是对于百科这类网站的数据,除了个别因素,多数内容都能用来学习。
先公布正常答案:
换句话说:ChatGPT,开卷考试,告诉答案在哪一行,还为什么还回答不对问题呢?
默认给的答案是单打的?也不对啊梁海量还8次呢
设定范围后答案还不准确,那就五个项目都打上,再教一下找答案,这总行了吧?
恩??楼下智慧是谁?潘晓婷,9球天后那个潘晓婷吗???
毛晓彤????听说跳舞还不错?会打球吗?
有没有那么一种可能是英文的答案会准一些,那就试试
再核对一下正确答案,可能仅仅就是鹦鹉的水平,从第2又开始编了
这样吧,我直接告诉你到哪儿找可还行?
可我始终是没猜到结局
看来,我不但要再复习一下小学英语,简单的HTML语言也要说得严谨一点
下面这一张,可能是最离谱的答案了,里面汇聚了各行各业的知名人士。
难道,真的要告诉你:用 php 或者 python 抓取网页 'https://zh.m.wikipedia.org/wiki/全英羽毛球公开锦标赛' 中“夺冠次数较多者”后面的第一个 table 数据中前20列并输出姓名、男单、女单、男双、女双、混双和合计夺冠次数?
既然想到了,那就试试:
import requestsfrom bs4 import BeautifulSoup# 获取网页内容url = "https://en.wikipedia.org/wiki/All_England_Open_Badminton_Championships"html = requests.get(url).text# 解析HTMLsoup = BeautifulSoup(html, 'html.parser')# 找到“Multiple winners”后面的第一个tabletable = 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这样的唯一终端时,它不以欺骗我们百科全书看得少。