【发布时间】:2020-05-16 22:22:30
【问题描述】:
我正在开发一个 Flask 应用程序,我在其中从多个 URL 进行网络抓取(范围很广,可以超过 100 个)。它在本地工作,但是当部署到 Heroku 时,它会超时。
这是我正在使用的代码的 sn-p,其中 bookOutletHas() 函数是使用请求和 BeautifulSoup 进行网络抓取的函数。
for book in gr_books:
temp_book = book.book
title = temp_book["title"]
author = temp_book["authors"]["author"]["name"]
arr = bookOutletHas(title=title, author=author)
if arr[0]:
valid_books += [ str(arr[1]) ]
return render_template("main_page.html",books=valid_books)
我的第一个直觉是找到一种对其进行编码的方法,以便在每次更新 valid_books 数组时更新页面(比如每次都重新渲染模板?)但我不确定如何处理这个问题。我对javascript一无所知,所以如果可能的话,我正在寻找一种通过Python和HTML的方法。
【问题讨论】:
-
发生抓取的请求超时?
-
@robinsax 完成 POST 请求时超时。根据日志,我看到它成功地抓取了数组的前几个元素。所以我不认为是抓取功能花费了太长时间,而是它有很多 URL 可以点击?
标签: python flask heroku web-scraping