【发布时间】:2018-01-08 15:03:51
【问题描述】:
我曾经和 spark 一起工作过,他设法自动构建漂亮的表。 现在我用python和美汤来摄取药物数据。 这是我的代码,我想建立一个包含所有药物及其相关信息的表格。
我尝试使用“split”,因为信息是用“---”分开的
但没有得到可读的东西: 请在下面找到代码+结果示例+理想DataFrame的结构
1- 代码
import requests
from bs4 import BeautifulSoup
def get_details(url):
print('details:', url)
# get subpage
r = requests.get(url)
soup = BeautifulSoup(r.text ,"lxml")
# get data on subpabe
dts = soup.findAll('dt')
dds = soup.findAll('dd')
# display details
for dt, dd in zip(dts, dds):
print(dt.text)
print(dd.text)
print('---')
print('---------------------------')
def drug_data():
url = 'https://www.drugbank.ca/drugs/'
while url:
print(url)
r = requests.get(url)
soup = BeautifulSoup(r.text ,"lxml")
# get links to subpages
links = soup.select('strong a')
for link in links:
# exeecute function to get subpage
get_details('https://www.drugbank.ca' + link['href'])
# next page url
url = soup.findAll('a', {'class': 'page-link', 'rel': 'next'})
print(url)
if url:
url = 'https://www.drugbank.ca' + url[0].get('href')
else:
break
2-输出结构如下:
名字
5-甲基四氢叶酸
入藏号
DB04789
类型
小分子
组
已获批准的营养保健品
说明 5-甲基四氢叶酸是四氢叶酸的甲基化衍生物。它是由亚甲基四氢叶酸还原酶从 5,10-亚甲基四氢叶酸中生成的,用于通过 5-甲基四氢叶酸-高半胱氨酸甲基转移酶(也称为蛋氨酸合酶)将高半胱氨酸回收回蛋氨酸。
Panda 数据框应如下所示:
你有什么建议? 最好的
【问题讨论】:
-
请您更正代码的缩进。
-
完成谢谢您的建议
-
我认为你使用的是 Python 3.x 而不是 Python 2.x。
标签: python python-2.7 pandas dataframe beautifulsoup