【问题标题】:Web Crawling using BS4 returning incorrect html content使用 BS4 的 Web 抓取返回不正确的 html 内容
【发布时间】:2020-07-29 07:08:07
【问题描述】:

我试图通过从 Yocket 中抓取数据来查找有关特定大学录取学生的 GPA、GRE 和工作经验的一些统计数据。虽然我的代码在第一页(https://yocket.in/applications-admits-rejects/588-new-york-university/2)上正常工作,但是当您单击下面的导航栏(https://yocket.in/applications-admits-rejects/588-new-york-university/2?page=2)时我试图抓取后面的页面时,代码不起作用。经过分析,我发现为后面的页面接收到的 HTML 内容变得不正确,即接收到的 html 内容对应于其他页面。此外,接收到的内容对于 page=3、page=4 等不正确。抓取的内容仅对 page=1 是正确的。此 URL 适用于 NYU,但是在 page=2 上收到的不正确内容的这种行为对于所有其他大学的 URL 都是相同的 但是,我只想要承认的状态。因此,需要找到一种方法来浏览第 2 页中的不同页面。Url 将是 /2?page= 部分。

这是我的代码:

import requests
from bs4 import BeautifulSoup
page_num=2
url="https://yocket.in/applications-admits-rejects/588-new-york-university/2?page=" + str(page_num) 
page = requests.get(url)
soup=BeautifulSoup(page.content)
print(soup.prettify())

【问题讨论】:

    标签: python-3.x beautifulsoup web-crawler


    【解决方案1】:

    它发出警告,因为没有明确定义解析器,只需将 features = "lxml" 传递给 BeautifulSoup 构造函数,它将解决问题。

    import requests
    from bs4 import BeautifulSoup
    page_num=2
    url="https://yocket.in/applications-admits-rejects/588-new-york-university/2?page=" + str(page_num) 
    page = requests.get(url)
    soup=BeautifulSoup(page.content,features = "lxml")
    print(soup.prettify())
    

    希望有帮助!

    【讨论】:

    • 这里的问题是yocket.in/applications-admits-rejects/588-new-york-university/1对应所有拒绝的起始页,yocket.in/applications-admits-rejects/588-new-york-university/2 - 对应录取那所大学,yocket.in/applications-admits-rejects/588-new-york-university/4 - 对应对大学感兴趣的状态。但是,我只想要承认的状态。因此,需要找到一种方法来导航抛出不同的页面 /2?page= 部分。
    • 对于page下的section,可以使用不同的tag来获取内容。
    • 但问题是每个页面只有 20 个条目。我想要所有条目,因此为此目的,yocket.in/applications-admits-rejects/588-new-york-university/2 将只允许我获取数据点。为了获得更多,我需要浏览: /2?page=2,3...
    • 是的。您的网址是正确的。只需添加 features="lxml" 检查编辑的代码。对我来说效果很好。
    • 代码正在抓取一些HTML,但是,内容对应于其他一些页面(可能是主页)。没有GPA、GRE等的内容
    猜你喜欢
    • 1970-01-01
    • 2019-04-27
    • 2021-01-06
    • 1970-01-01
    • 2017-10-19
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    相关资源
    最近更新 更多