[英]python beautifulsoup - how to go to next page while next page doesn't have an unique address
我正在嘗試使用beautifulsoup編寫一個Web爬蟲以從https://www.ncbi.nlm.nih.gov/gene/?term=Celiac+disease提取基因名稱
我的代碼可以從第一頁獲得所需的結果,但是我不知道如何編寫代碼以使程序移至下一頁。 單擊“下一步”按鈕后,我得到一個新地址,該地址與上一頁沒有任何關系。 例如,第一頁的地址為https://www.ncbi.nlm.nih.gov/gene/?term=Celiac+disease ,而下一頁的地址為https://www.ncbi.nlm.nih。 gov / gene (盡管仍然顯示與乳糜瀉相關的結果)
我已經查了一下google和stackoverflow,看是否有與此問題有關的文章。 但是我只能找到有關頁面的文章,這些頁面具有相似的地址,並且(對我而言)邏輯上遵循其蹤跡。
from bs4 import BeautifulSoup
from urllib.request import urlopen
gene_result = []
url = "https://www.ncbi.nlm.nih.gov/gene/?term=Celiac+disease"
html = urlopen(url).read()
soup = BeautifulSoup(html, "html5lib")
tbody = soup.find("tbody")
a_href = tbody.find_all("a")
for x in a_href:
gene = x.contents[0]
gene_result.append(gene)
print(gene_result)
該代碼可以很好地爬行第一頁,並且我得到了很好的結果:
['CTLA4', 'HLA-DQA1', 'IL2', 'IL21', 'CCR3', 'CELIAC2', 'ATXN2', 'SH2B3', 'HLA-DQB1', 'CELIAC5', 'TAGAP', 'CELIAC7', 'CELIAC13', 'CELIAC12', 'CELIAC11', 'CELIAC10', 'CELIAC9', 'CELIAC8', 'CELIAC6', 'KIAA1109']
有人可以幫我解決這個問題嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.