Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用BeautifulSoup进行分页_Python_Pagination_Beautifulsoup - Fatal编程技术网

Python 使用BeautifulSoup进行分页

Python 使用BeautifulSoup进行分页,python,pagination,beautifulsoup,Python,Pagination,Beautifulsoup,我正在尝试从以下网站获取一些数据 对于表中的每一种药物,我都需要深入了解其名称和一些其他特定功能,如类别、结构化适应症(请单击药物名称查看我将使用的功能) 我编写了以下代码,但问题是我不能让我的代码处理分页(正如您看到的,有2000多页!) 如何刮取所有数据并正确处理分页?此页面对所有页面使用几乎相同的url,因此您可以使用for循环来生成它们 def drug_data(page_number): url = 'https://www.drugbank.ca/drugs/?page='

我正在尝试从以下网站获取一些数据

对于表中的每一种药物,我都需要深入了解其名称和一些其他特定功能,如类别、结构化适应症(请单击药物名称查看我将使用的功能)

我编写了以下代码,但问题是我不能让我的代码处理分页(正如您看到的,有2000多页!)


如何刮取所有数据并正确处理分页?

此页面对所有页面使用几乎相同的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&amp;c=name&amp;d=up&amp;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&amp;c=name&amp;d=up&amp;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
获得它。我添加了找到下一页链接的示例。非常感谢,这非常有用!我添加了一个例子,可以找到下一页的链接。非常感谢,这非常有帮助!