【问题标题】:Fastest method to scrape new webpage content抓取新网页内容的最快方法
【发布时间】:2021-11-01 01:12:33
【问题描述】:

对于包含新闻文章列表的给定网页,我想尽快抓取新发布文章的内容,因为时间对于这项任务至关重要。

到目前为止,我使用 requestsBeautifulSoup 库从新闻网页中抓取内容。这使得在大约一到两秒内抓取一篇新的新闻文章成为可能。在论坛中,我经常发现做一个网页请求只需要一定的时间,这是一个无法改善的瓶颈。但也许有人有个好主意……

我如何抓取新新闻文章的通用示例代码如下所示:

page = requests.get(webpage)
old_content = BeautifulSoup(page.content, "html.parser") # The latest article was scraped to have a comparison variable

while new_content == content:
     page = requests.get(webpage)
     new_content = BeautifulSoup(page.content, "html.parser")

# Code that uses new_content, if new_content =! old_content

有人知道如何更快地抓取新的网页内容吗?理想情况下,这将花费不到一秒钟的时间。

【问题讨论】:

  • 会不会是网络瓶颈,而不是代码瓶颈?如果它是互联网瓶颈,除了使用以太网或优化代码,通过请求更少的网页或其他方式之外,您无能为力。
  • 动态内容必须从某处加载。找出它在哪里,让你的脚本直接检索它,而不是从页面上抓取它。无论哪种方式,请记住,当您通过快速、重复地请求内容来滥用它们时,网站通常不喜欢它。

标签: python html web-scraping


【解决方案1】:

您说您正在寻找新发表的文章,我认为没有媒体网站每分钟发布一篇文章。因此,您可以缓存结果并可能每隔一小时更新一次。

因此,假设您在客户端-服务器请求的运行时抓取该内容,则将有一个请求每隔一小时需要 1-2 秒,否则,您将从缓存中获取数据。

如果您在后台使用计划作业或每 1 小时运行一次脚本并将结果存储在数据库或您可以如此快速地从中获取数据的其他东西中的 cron 作业,则可以使其更加优化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-09
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    相关资源
    最近更新 更多