Django Web应用程序与美丽的汤,请求



我想要一个网站,当用户输入一些内容时,他们会在网站上获得所有的抓取数据视图。。

目前,这个python3代码通过jupyter笔记本运行良好。你们可以在jupyter笔记本上测试一下。但我想要在适当的方式,是为用户界面。我知道Django可以与python代码集成,但我应该把这些代码放在哪里。是models.py吗?

from urllib.request import Request, urlopen as uReq 
from bs4 import BeautifulSoup as soup
def make_soup(website) :
    req =  Request(website,headers = {'User-Agent' : 'Mozilla/5.0'})
    uClient = uReq(req)
    page_html = uClient.read()
    uClient.close()
    page_soup = soup(page_html, 'html.parser')
    return page_soup
google_news_url = 'https://www.google.com.my/search?q={}&source=Int&tbm=nws'
def forge_url (q):
    return google_news_url.format(q.replace(' ','+'))
news_url = forge_url (input('Enter Search'))
website = make_soup(news_url)
headlines = website.findAll('h3')
n = 0
for item in headlines :
    top = item.a
    #print(top)
    #print()
    text_headlines = top.text
    print(text_headlines)
    print()
    n +=1

顺便说一句,我应该在views.py和templates中放些什么。谢谢;(

报废是一项非常耗时的任务,

获取数据需要花费大量时间,处理数据需要花费更多时间。

因此,为了让一个好的网站进行抓取,你必须定义一些后台任务来完成这项工作,而用户可以做其他事情或查看流程栏。

此外,并非所有网站都是服务器端渲染的,因此您无法通过请求或其他类似库获取页面数据。您可以使用selenium用浏览器(Firefox和Chrome(打开页面,渲染整个页面,然后将源代码传递给BS等库,以提取所需内容。

所以我的建议是:

  • 构建一个视图来请求页面url,

  • 创建一个或多个后台任务来完成繁重的工作(例如芹菜(

  • 然后在处理完成时将结果传递给用户。

您可以在此处找到命名库:

芹菜

最新更新