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