【问题标题】:request.get url of second page of a search resultrequest.get 搜索结果第二页的url
【发布时间】:2018-05-29 19:06:42
【问题描述】:

我正在尝试使用 request.get(url) 从服务器获取 url 的响应。 以下代码适用于搜索结果第一页的 url:

r = requests.get("https://www.epocacosmeticos.com.br/perfumes")
soup = BeautifulSoup(r.text)

但是,当我尝试对搜索结果第二页的 url 使用相同的代码时,即“https://www.epocacosmeticos.com.br/perfumes#2”,

r = requests.get("https://www.epocacosmeticos.com.br/perfumes#2")
soup = BeautifulSoup(r.text)

它返回第一页的响应。它会忽略 URL 末尾的“#2”。如何获取搜索结果第二页的响应?

【问题讨论】:

    标签: python http url beautifulsoup python-requests


    【解决方案1】:

    您可以使用像BurpSuite 这样的网络代理来查看页面发出的请求。当您单击“第 2 页”按钮时,这是在后台发送的内容:

    GET /buscapagina?fq=C%3a%2f1000001%2f&PS=16&sl=f804bbc5-5fa8-4b8b-b93a-641c059b35b3&cc=4&sm=0&PageNumber=2 HTTP/1.1
    

    因此,如果您想正确抓取网站,则需要查询此网址。
    BurpSuite 还允许您处理请求,因此您可以尝试更改请求(例如将 2 更改为 3)并查看是否获得预期结果。

    【讨论】:

      【解决方案2】:

      这个网站似乎使用了动态 html。因此,第二个结果页面不是“新页面”,而是重新加载了搜索内容的同一页面。

      您可能无法仅使用请求进行报废。这可能需要浏览器。 SeleniumPhantomJSHeadless-Chrome 是这个工作的不错选择,之后你可以使用 beautifulSoup 来解析。

      【讨论】:

        猜你喜欢
        • 2019-02-02
        • 1970-01-01
        • 2017-10-09
        • 1970-01-01
        • 1970-01-01
        • 2012-05-08
        • 2020-06-24
        • 2016-04-01
        • 1970-01-01
        相关资源
        最近更新 更多