Python 使用BeautifulSoup进行分页
我正在尝试从以下网站获取一些数据 对于表中的每一种药物,我都需要深入了解其名称和一些其他特定功能,如类别、结构化适应症(请单击药物名称查看我将使用的功能) 我编写了以下代码,但问题是我不能让我的代码处理分页(正如您看到的,有2000多页!)Python 使用BeautifulSoup进行分页,python,pagination,beautifulsoup,Python,Pagination,Beautifulsoup,我正在尝试从以下网站获取一些数据 对于表中的每一种药物,我都需要深入了解其名称和一些其他特定功能,如类别、结构化适应症(请单击药物名称查看我将使用的功能) 我编写了以下代码,但问题是我不能让我的代码处理分页(正如您看到的,有2000多页!) 如何刮取所有数据并正确处理分页?此页面对所有页面使用几乎相同的url,因此您可以使用for循环来生成它们 def drug_data(page_number): url = 'https://www.drugbank.ca/drugs/?page='
如何刮取所有数据并正确处理分页?此页面对所有页面使用几乎相同的url,因此您可以使用
for
循环来生成它们
def drug_data(page_number):
url = 'https://www.drugbank.ca/drugs/?page=' + str(page_number)
... rest ...
# --- later ---
for x in range(1, 2001):
drug_data(x)
或者使用while
和try/except
获取超过2000页
# --- later ---
page = 0
while True:
try:
page += 1
drug_data(page)
except Exception as ex:
print(ex)
print("probably last page:", page)
break # exit `while` loop
您还可以在HTML中找到下一页的url
<a rel="next" class="page-link" href="/drugs?approved=1&c=name&d=up&page=2">›</a>
顺便说一句:永远不要使用
,除非:pass
,因为您可能会遇到意想不到的错误,并且您不知道它为什么不起作用。更好的显示错误
except Exception as ex:
print('Error:', ex)
此页面对所有页面使用几乎相同的url,因此您可以使用
for
循环来生成它们
def drug_data(page_number):
url = 'https://www.drugbank.ca/drugs/?page=' + str(page_number)
... rest ...
# --- later ---
for x in range(1, 2001):
drug_data(x)
或者使用while
和try/except
获取超过2000页
# --- later ---
page = 0
while True:
try:
page += 1
drug_data(page)
except Exception as ex:
print(ex)
print("probably last page:", page)
break # exit `while` loop
您还可以在HTML中找到下一页的url
<a rel="next" class="page-link" href="/drugs?approved=1&c=name&d=up&page=2">›</a>
顺便说一句:永远不要使用
,除非:pass
,因为您可能会遇到意想不到的错误,并且您不知道它为什么不起作用。更好的显示错误
except Exception as ex:
print('Error:', ex)
所有页面都使用几乎相同的url(使用
&page=…
),因此您可以轻松地为下一个页面生成url。如何生成?你有没有举个例子?谢谢furas:)正常url=https://www.drugbank.ca/drugs?page=“+str(页码)
您可以使用进行或在无法阅读页面时循环并捕捉页面的结尾。页面上的按钮“>”中也有指向下一页的链接,这样您就可以使用BeautifulSoup
来获取它。所有页面使用几乎相同的url-使用和
-这样您就可以轻松地为下一页生成url。如何?您有一个例子吗?谢谢furas:)正常url=https://www.drugbank.ca/drugs?page=“+str(页码)
您可以使用进行或在无法读取页面时循环并捕捉页面结尾。到下一页的链接也在第页的按钮“>”中,所以您可以通过BeautifulSoup
获得它。我添加了找到下一页链接的示例。非常感谢,这非常有用!我添加了一个例子,可以找到下一页的链接。非常感谢,这非常有帮助!