【问题标题】:Get url links of search results from GEO DataSets using pagination使用分页从 GEO 数据集中获取搜索结果的 url 链接
【发布时间】:2018-03-16 14:32:55
【问题描述】:

我想从这个搜索结果页面获取每篇文章的所有链接: https://www.ncbi.nlm.nih.gov/gds/?term=lung+cancer

但我无法获取下一页的网址。来自<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 来检索下一页的 url,以便使用 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 页的内容。谁能告诉我我做错了什么?

【问题讨论】:

    标签: php python pagination beautifulsoup scrapy


    【解决方案1】:

    您应该发送大量数据(通过发出 POST 请求)以获得下一页。在任何浏览器中使用开发者工具来检查您需要发送哪些数据。

    (未显示所有数据)

    【讨论】:

    • 对不起,我不太明白,你的意思是我必须尝试几种组合才能猜出正确的网址?
    • 我的意思是你不需要构造任何“神奇”的 url 来检索你的数据,但似乎你必须探索大量数据才能发送到param2。在我看来,使用 Selenium 或类似工具会很容易。
    猜你喜欢
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2020-06-27
    • 2013-01-30
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多