2017-10-05 86 views
0

我想從搜索結果頁中的每一篇文章的所有鏈接: https://www.ncbi.nlm.nih.gov/gds/?term=lung+cancer獲取從GEO數據集搜索結果的URL鏈接使用分頁

但我有問題越來越下一頁的URL。從<div class="pagination">,它說:

<a name="EntrezSystem2.PEntrez.Gds.Gds_ResultsPanel.Entrez_Pager.Page" title="Next page of results" class="active page_link next" href="#" sid="3" page="2" accesskey="k" id="EntrezSystem2.PEntrez.Gds.Gds_ResultsPanel.Entrez_Pager.Page">Next &gt;</a> 

所以我用Python的urllib的檢索下一個頁面的網址,以便使用BeautifulSoup來獲取它的內容:

param2=urllib.urlencode({'sid':3,'page':2,'accesskey':'k','id':'EntrezSystem2.PEntrez.Gds.Gds_ResultsPanel.Entrez_Pager.Page'}) 

f2=urllib.urlopen('https://www.ncbi.nlm.nih.gov/gds/?term=lung+cancer',param2) 

soup2 = BeautifulSoup(f2.read(), 'html.parser') 

現在的問題是,即使我將頁碼從1改爲10,我總是得到第1頁的內容。任何人都可以告訴我我做錯了什麼嗎?

回答

0

您應該發送大量數據(通過發出POST請求)以獲取下一頁。在任何瀏覽器中使用開發者工具來檢查您需要發送哪些數據。

enter image description here

(並非所有數據都顯示)

+0

對不起,我不太明白,你的意思是我必須嘗試多種組合猜測正確的網址是什麼? – paladin

+0

我的意思是說,你不需要構建任何'魔術'url來檢索你的數據,但是你似乎需要探索大量的數據來發送'param2'。在我看來,使用Selenium或類似的工具會很容易。 –

+0

噢謝謝你,我會盡量和他們一起玩。 – paladin