代码语言:javascript复制
import requests
from bs4 import BeautifulSoup
# 代理信息
proxyHost = "www.16yun.cn"
proxyPort = "5445"
proxyUser = "16QMSOML"
proxyPass = "280651"
def scrape_news():
url = 'https://www.examplenews.com'
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host": proxyHost,
"port": proxyPort,
"user": proxyUser,
"pass": proxyPass,
}
proxies = {
"http": proxyMeta,
"https": proxyMeta,
}
response = requests.get(url, proxies=proxies)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
news_titles = []
news_links = []
for news in soup.find_all('h3', class_='news-title'):
news_titles.append(news.text)
news_links.append(news.a['href'])
return news_titles, news_links
else:
return None, None
接下来,我们将Django项目与爬虫脚本结合起来。我们可以在Django项目中创建一个新的应用程序,然后编写视图函数来处理爬虫抓取到的数据。在视图函数中,我们可以调用爬虫脚本,并将抓取到的数据传递给模板进行展示。
代码语言:javascript复制from django.shortcuts import render
from .utils import scrape_news
def news_list(request):
news_titles, news_links = scrape_news()
context = {
'news_titles': news_titles,
'news_links': news_links
}
return render(request, 'news_list.html', context)
最后,我们需要在Django项目中创建相应的模板文件来展示数据。我们可以使用Django模板语言来渲染页面,并将数据动态地显示在页面上。通过这种方式,我们可以将爬虫抓取到的数据展示给用户,实现数据的处理和展示流程
代码语言:javascript复制<!-- news_list.html -->
<!DOCTYPE html>
<html>
<head>
<title>Latest News</title>
</head>
<body>
<h1>Latest News</h1>
<ul>
{% for title, link in zip(news_titles, news_links) %}
<li><a href="{{ link }}">{{ title }}</a></li>
{% endfor %}
</ul>
</body>
</html>