我试图解析https://www.drugbank.ca/drugs。每种药物的附加信息和名称都是提取出来的。正如你所看到的,每个网页代表一个表格,上面有药品名称,当我们点击药品名称时,我们可以访问这些药品信息。 假设我将保留以下代码来处理分页:
import requests
from bs4 import BeautifulSoup
def drug_data():
url = 'https://www.drugbank.ca/drugs/'
while url:
print(url)
r = requests.get(url)
soup = BeautifulSoup(r.text ,"lxml")
#data = soup.select('name-head a')
#for link in data:
# href = 'https://www.drugbank.ca/drugs/' + link.get('href')
# pages_data(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()
问题是,在每一页中,对于本页表格中的每种药物,我需要捕获: 姓名。 登记号。 结构性显示, 普通处方药
我用的是经典的请求/美化,但不能深入。。在
请帮忙
为了有效地爬行,您需要实现一些措施,例如维护要访问的url队列,并知道您已经访问过哪些url。在
请记住,链接可以是绝对的或相对的,并且重定向很有可能,您可能还希望动态地构造url,而不是字符串连接。在
这里是一个通用的(我们通常只想使用
example.com
on SO)爬网工作流。。。在使用
requests
和BeautifulSoup
创建函数以从子页面获取数据相关问题 更多 >
编程相关推荐