【发布时间】:2018-01-16 12:26:40
【问题描述】:
我想解析来自 Drug 网站的数据。这个解析需要有选择性,这是我使用的代码:
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
drug_data()
这运作良好。但是更深入和选择性的解析呢?假设这种药物:https://www.drugbank.ca/drugs/DB01614 当我使用我的代码解析“PATENT”时,它会将“PATENT”的所有信息(表示为子表)连接到一个段落中。
理想情况下,如果我可以解析专利但只提取“专利号”、“批准”和标志所代表的国家!在单独的列中! 一些帮助 ?
这是专利截图: enter image description here
【问题讨论】:
-
patent number,你的意思是入藏号吗?approved是指群组吗?我也看不到任何地方的旗帜。 -
在页面底部
-
我看到了,您提供的链接没有专利。
标签: python python-2.7 pandas parsing beautifulsoup