簡體   English   中英

如何讓網頁抓取更快? Django 項目

[英]How to make web-scraping faster? Django project

我正在使用 Django 框架構建一個網絡抓取應用程序。 我需要一些有關如何加快我的應用程序的提示。 截至目前,加載頁面僅解析 3 個 url 需要將近一分鍾,這是一個問題。 我需要更快地運行,因為我想在我的網頁上解析多達 10 個 url。 如您所見,我的代碼只針對一個 div,這就是我的應用程序運行如此緩慢的原因。 我想我可以嘗試針對多個 div 來縮小我的“湯”范圍,但我過去在這方面遇到了困難,所以我希望得到一些指導。

def stats(request):
    if 'user_id' not in request.session:
        return redirect('/')
    this_user = User.objects.filter(id = request.session['user_id'])
    this_stock = Stock.objects.filter(user_id = request.session['user_id'])
    progress_dict = []
    for object in this_stock:
        URL = object.nasdaq_url
        page = requests.get(URL)
        soup = BeautifulSoup(page.content, 'html.parser')
        progress = soup.find_all('div', class_='ln0Gqe')
        for number in progress:
            progress_dict.append(number.text)
    context = {
            "current_user" : this_user[0].first_name,
            "progress_dict": progress_dict,
            "this_stock": this_stock,
        }
    return render(request, "nasdaq.html", context)

您可以使用線程同時抓取多個頁面。 這里這里了解更多關於它的信息。

並且使用lxml還可以加快您的網頁抓取速度。 您可以在此處查看更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM