想简单的弄点数据,用CHATGPT教了我半天,还是没学会

这个是国家药监局的一个网站
https://www.cde.org.cn/hymlj/listpage/9cd8db3b7530c6fa0c86485e563f93c7
在药品名称那里输入 “克林霉素磷酸酯”会得到一系列结果
比如,序号为1的页面
https://www.cde.org.cn/hymlj/detailPage/985ea032f637be3b63401c07d1427033

我想把里面的 药品名称 规格 批准日期 上市许可持有人 字段提取出来做个表格研究。

CHATGPT开始给了我python的代码,我说我没有环境,问excel行不,然后又给了EXCEL的 VBA代码。
折腾半天还是弄不出来。

最后我说要放弃的时候CHATGPT还耐心的给说有收费或免费软件比较容易上手,还有在线的也可以爬:D
不知道该如何下手,还望各位不吝赐教

跑不起来是正常的,ChatGPT只能辅助编程,需要对给出的样例代码,做二次修改才能运行。

我也不会 VBA ,不过就我的测试来看,ChatGPT只能写写简单的代码,并且也不一定对,都需要自己会点编程基础。

不过 Python 干这个事确实是写的快。

如果你只要这个品名,我可以给你下,但很明显你应该不是只要这一个 :rofl:

我的确是想要这一个,当然顺便学习下方法也更好。那个网站查询不友好,我其实是想看某个厂家的,结果查出来都一样,要一个一个点击进去查看

1 个赞

准备放弃了,就这几行折腾几个小时了,没结果。哈哈

import requests
from bs4 import BeautifulSoup

# 发送 GET 请求获取网页内容
url = "https://www.cde.org.cn/hymlj/detailPage/17f68fe1897240845fce01667fe91377"
response = requests.get(url)
html = response.text

# 解析 HTML,并查找药品名称、规格和上市持有人字段
soup = BeautifulSoup(html, "html.parser")
ypmc = soup.find("td", string="药品名称:").find_next_sibling("td").get_text(strip=True)
gg = soup.find("td", string="规格:").find_next_sibling("td").get_text(strip=True)
ssxkzcyr = soup.find("td", string="上市持有人:").find_next_sibling("td").get_text(strip=True)

# 打印提取出的字段信息
print("药品名称:", ypmc)
print("规格:", gg)
print("上市持有人:", ssxkzcyr)

我晚上看看。

把7楼这个让GPT再改改,提问是技巧
要设定它是编程大师,会python
然后让它找出程序的目的,找出哪里错了,然后改正

比如这样的提示语:
假设你是个优秀的程序员,能写程序,修改程序, 我要你检查以下代码的目的,看看还需要哪些依赖的库,找出哪里是有问题的,把出错的地方改正过来,并让它能顺利运行,以下是代码:

谢谢,没编程基础。光python和变量、库什么的就折腾了半天。我再试试换个问法。

代码中存在一个问题,就是在查找药品名称、规格和上市持有人字段时,使用了字符串常量作为参数,但这些字符串常量可能会因为网页的变化而失效,因此应该使用更加普适的方式进行查找。另外,在使用 find_next_sibling() 方法之前,需要先判断当前标签是否存在下一个兄弟标签,否则会抛出 AttributeError 异常。

下面是修改后的代码,通过查找对应的标签属性,使用更加普适的方式进行查找,确保代码的鲁棒性和稳定性:

import requests
from bs4 import BeautifulSoup

# 发送 GET 请求获取网页内容
url = "https://www.cde.org.cn/hymlj/detailPage/17f68fe1897240845fce01667fe91377"
response = requests.get(url)
html = response.text

# 解析 HTML,并查找药品名称、规格和上市持有人字段
soup = BeautifulSoup(html, "html.parser")
td_tags = soup.find_all("td")
for i in range(len(td_tags)):
    if "药品名称" in td_tags[i].get_text(strip=True):
        ypmc = td_tags[i+1].get_text(strip=True)
    elif "规格" in td_tags[i].get_text(strip=True):
        gg = td_tags[i+1].get_text(strip=True)
    elif "上市持有人" in td_tags[i].get_text(strip=True):
        ssxkzcyr = td_tags[i+1].get_text(strip=True)

# 打印提取出的字段信息
print("药品名称:", ypmc)
print("规格:", gg)
print("上市持有人:", ssxkzcyr)

经过修改后,这段代码可以顺利运行,输出药品的名称、规格和上市持有人信息。
据说这样可以,我没有试

谢谢,我一会试试。已经把chatgpt逼的都好几次开始使用正则表达了。 可能因为咱不懂程序,不能和它很好的沟通。

数据
药品名称 规格 批准日期 上市许可证持有人
克林霉素磷酸酯注射液 2ml:0.3g(按克林霉素计) 2021-04-25 湖南五洲通药业股份有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33C1N2O5S计) 2021-08-05 江苏神龙药业有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33ClN2O5S计) 2021-08-05 江苏神龙药业有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2021-08-05 湖南恒生制药股份有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2022-05-10 广东金城金素制药有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2021-09-24 山东新华制药股份有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2021-08-25 广安凯特制药有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33ClN2O5S计) 2022-05-10 广东金城金素制药有限公司
克林霉素磷酸酯注射液 4ml:0.6g (按C18H33ClN2O5S计) 2022-12-30 安徽省先锋制药有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33ClN2O5S计) 2021-09-24 山东新华制药股份有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2021-09-23 华北制药股份有限公司
克林霉素磷酸酯注射液 2ml:0.3g (按C18H33ClN2O5S计) 2022-12-30 安徽省先锋制药有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33ClN2O5S计) 2021-09-23 华北制药股份有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33ClN2O5S计) 2022-07-13 广安凯特制药有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33ClN2O5S计) 2022-05-16 哈尔滨三联药业股份有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33C1N2O5S计) 2021-08-25 成都普什制药有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2021-08-25 广州一品红制药有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33ClN2O5S计) 2021-08-25 广州一品红制药有限公司
克林霉素磷酸酯注射液 按C18H33ClN2O5S计 4ml:600mg 2021-10-19 山东罗欣药业集团股份有限公司
克林霉素磷酸酯注射液 按C18H33ClN2O5S计 6ml:900mg 2021-10-19 山东罗欣药业集团股份有限公司
克林霉素磷酸酯注射液 按C18H33ClN2O5S计 2ml:300mg 2021-10-19 山东罗欣药业集团股份有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2022-01-28 华润双鹤利民药业(济南)有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33ClN2O5S计) 2022-01-28 华润双鹤利民药业(济南)有限公司
克林霉素磷酸酯注射液 6ml:0.9g(按C18H33ClN2O5S计) 2022-05-10 广东金城金素制药有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2021-09-28 山东方明药业集团股份有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2021-08-25 成都普什制药有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33ClN2O5S计) 2021-09-23 山东威智百科药业有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2021-09-23 山东威智百科药业有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2021-10-21 辰欣药业股份有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33ClN2O5S计) 2021-08-25 湖南恒生制药股份有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33C1N2O5S计) 2021-06-16 江西赣南海欣药业股份有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2021-06-16 江西赣南海欣药业股份有限公司
克林霉素磷酸酯注射液 4ml:0.6g(按C18H33ClN2O5S计) 2023-01-10 河南润弘制药股份有限公司
克林霉素磷酸酯注射液 2ml:0.3g(按C18H33ClN2O5S计) 2023-01-10 河南润弘制药股份有限公司
克林霉素磷酸酯注射液 1ml︰0.15g(按C18H33ClN2O5S计) 2022-11-22 湖南一格制药有限公司
克林霉素磷酸酯注射液 2ml︰0.3g(按C18H33ClN2O5S计) 2022-11-22 湖南一格制药有限公司
克林霉素磷酸酯注射液 3ml︰0.45g(按C18H33ClN2O5S计) 2022-11-22 湖南一格制药有限公司

打开 F12 搞的,都不算用了 Python。

谢谢,明天到办公室看看自己有没有可能举一反三。
完了准备再试试bing,貌似bing能直接列表给结果。

另外,后来才发现我要的东西有第三方公司有数据库,登录可以查询得完整结果。
看来都类似企查查什么的,爬虫爬的好