我想要一个网站,当用户输入一些内容时,他们会在网站上获得所有的抓取数据视图。。
目前,这个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,
-
创建一个或多个后台任务来完成繁重的工作(例如芹菜(
-
然后在处理完成时将结果传递给用户。
您可以在此处找到命名库:
硒
芹菜