希望提供帮助?以下是您的选择:","Crunchbase","关于我们","感谢大家的大力支持!","快速链接","联属会员计划","高级","ProxyScrape 高级试用","代理类型","代理国家","代理用例","重要","Cookie 政策","免责声明","隐私政策","条款和条件","社交媒体","在 Facebook 上","LinkedIn","推特","Quora","电报","不和谐音","\n © Copyright 2024 -Thib BV| Brugstraat 18 | 2812 Mechelen | Belgium | VAT BE 0749 716 760\n"]}
新闻是了解全球正在发生的事情的最佳途径。对于数据工程师来说,新闻报道是收集超现实数据量的最佳途径之一。更多的数据意味着更多的洞察力,只有这样,我们的技术才能不断创新,人类才能达到前所未有的高度。但是
新闻是了解全球正在发生的事情的最佳途径。对于数据工程师来说,新闻报道是收集超现实数据量的最佳途径之一。更多的数据意味着更多的洞察力,只有这样,我们的技术才能不断创新,人类才能达到前所未有的高度。但是,新闻数量庞大,要手动获取所有数据是不可能的。自动获取数据的最佳方法是什么?答案就是使用 python 进行新闻文章的网络搜刮。
在本文中,我们将创建一个网络抓取器,从不同的报纸上抓取最新的新闻文章,并将其存储为文本。我们将通过以下两个步骤来深入分析整个过程是如何完成的。
使用 Python和著名的 BeautifulSoup 库进行Web 搜索。
欢迎跳转到任何章节,了解更多有关如何使用 python 执行新闻文章网络搜刮的信息
如果我们想从任何网站或网页上提取重要信息,就必须了解该网站是如何工作的。当我们使用任何网络浏览器(Chrome、Firefox、Mozilla 等)访问特定 URL 时,该网页是三种技术的组合、
HTML(超文本标记语言):HTML 定义了网页的内容。它是向网站添加内容的标准标记语言。例如,如果你想在网站上添加文字、图片或其他内容,HTML 可以帮你实现。
CSS(层叠样式表):用于设计网页样式。CSS 可以处理你在特定网站上看到的所有视觉设计。
JavaScriptJavaScript 是网页的大脑。JavaScript 负责处理所有逻辑和网页功能。因此,它可以使内容和样式具有交互性。
通过这三种编程语言,我们可以创建和操作网页的各个方面。
我想你应该知道网页和 HTML 的基础知识。一些 HTML 概念,如 divs、标签、标题等,可能会在创建此网页刮擦工具时非常有用。你不需要什么都知道,只需了解网页设计的基础知识以及信息是如何包含在网页中的,我们就可以开始了。
Python 有几个软件包可以让我们从网页中抓取信息。我们将继续使用 BeautifulSoup,因为它是最著名、最易用的 Python 网络搜刮库之一。
BeautifulSoup 最适合解析 URL 的 HTML 内容,并通过标记和标签来访问这些内容。因此,从网站中提取某些文本将非常方便。
只需 3-5 行代码,我们就能从互联网上神奇地提取我们所选网站的任何类型文本,这充分说明它是一个易于使用但功能强大的软件包。
我们从最基础的开始。要安装库软件包,请在 Python 发行版中输入以下命令、
pipinstallbeautifulsoup4
我们还将使用 "请求模块",因为它能为 BeautifulSoup 提供任何页面的 HTML 代码。要安装它,请在 Python 发行版中输入以下命令、
pipinstallrequests
该请求模块将允许我们从网页中获取 HTML 代码,并使用 BeautfulSoup 软件包进行导航。以下两个命令将使我们的工作变得更加轻松
find_all(element tag, attribute):该函数以 tag 和属性为参数,允许我们查找网页中的任何 HTML 元素。它会识别所有相同类型的元素。我们可以使用 find() 代替它,只获取第一个元素。
get_text():找到指定元素后,该命令允许我们提取内部文本。
要浏览网页的 HTML 代码并找到要搜索的元素,我们可以在网页上单击右键或直接按 Ctrl+F 键,使用 "检查元素 "选项。这样就能看到网页的源代码。
找到感兴趣的元素后,我们将通过请求模块获取 HTML 代码,并使用 BeautifulSoup 提取这些元素。
在本文中,我们将使用《EL 巴黎英语报》进行搜索。我们将从头版抓取新闻文章标题,然后抓取正文。
如果我们查看新闻文章的 HTML 代码,就会发现头版文章的结构是这样的、
The title has <h2> element with itemprop=”headline” and class=”articulo-titulo” attributes. It has an href attribute containing the text. So we will now extract the text using the following commands:
导入请求
从bs4导入BeautifulSoup
使用请求模块获取 HTML 内容后,我们可以将其保存到 coverpage 变量中:
# 请求
r1 = requests.get(url)
r1.status_code
# 我们将在 coverpage 中保存封面页内容
coverpage = r1.content
接下来,我们将定义汤变量、
# 创建汤
soup1= BeautifulSoup(coverpage,'html5lib')
在下面一行代码中,我们将找到要查找的元素、
# 新闻识别
coverpage_news= soup1.find_all('h2', class_='articulo-titulo')
使用 final_all,我们将获得所有的出现次数。因此,它必须返回一个列表,其中每个条目都是一篇新闻报道、
为了提取文本,我们将使用以下命令:
coverpage_news[4].get_text()
如果我们要访问一个属性(在我们的例子中是链接)的值,可以使用以下命令、
coverpage_news[4]['href']
这样我们就可以获得纯文本链接。
如果你已经掌握了到此为止的所有概念,那么你就可以网络搜刮自己选择的任何内容。
下一步包括使用 href 属性访问新闻文章的每条内容,获取源代码以查找 HTML 代码中的段落,最后使用 BeautifulSoup 获取它们。这个过程与上述过程相同,但我们需要定义标识新闻文章内容的标记和属性。
完整功能的代码如下。由于代码有注释,我就不逐行解释了;只要阅读这些注释,就能清楚地理解代码。
文章数量=5
# 内容、链接和标题的空列表
news_contents = []
list_links = []
list_titles = []
forninnp.arange(0, number_of_articles):
# 只有新闻文章(还有专辑和其他内容)
if "inenglish"notincoverpage_news[n].find('a')['href']:
继续
# 获取文章链接
link= coverpage_news[n].find('a')['href']: 继续
list_links.append(link)
# 获取标题
title = coverpage_news[n].find('a').get_text()
list_titles.append(title)
# 阅读内容(按段落划分)
article = requests.get(link)
article_content = article.content
soup_article = BeautifulSoup(article_content,'html5lib')
body = soup_article.find_all('div', class_='articulo-cuerpo')
x = body[0].find_all('p')
# 统一段落
list_paragraphs = []
forpinnp.arange(0, len(x)):
paragraph = x[p].get_text()
list_paragraphs.append(paragraph)
final_article =" ".join(list_paragraphs)
news_contents.append(final_article)
让我们把摘录的文章归纳如下:
# df_features
df_features = pd.DataFrame(
{'Article Content': news_contents
})
# df_show_info
df_show_info = pd.DataFrame(
{'Article Title': list_titles,
'Article Link': list_links})
df_features
df_show_info
为了定义更好的用户体验,我们还将测量脚本获取新闻所需的时间。我们将为此定义一个函数,然后调用。同样,我不会解释每一行代码,因为代码都有注释。要想获得清晰的理解,可以阅读这些注释。
def get_news_elpais():
# url definition
url = "https://elpais.com/elpais/inenglish.html"
# Request
r1 = requests.get(url)
r1.status_code
# We'll save in coverpage the cover page content
coverpage = r1.content
# Soup creation
soup1 = BeautifulSoup(coverpage, 'html5lib')
# News identification
coverpage_news = soup1.find_all('h2', class_='articulo-titulo')
len(coverpage_news)
number_of_articles = 5
# Empty lists for content, links and titles
news_contents = []
list_links = []
list_titles = []
for n in np.arange(0, number_of_articles):
# only news articles (there are also albums and other things)
if "inenglish" not in coverpage_news[n].find('a')['href']:
continue
# Getting the link of the article
link = coverpage_news[n].find('a')['href']
list_links.append(link)
# Getting the title
title = coverpage_news[n].find('a').get_text()
list_titles.append(title)
# Reading the content (it is divided in paragraphs)
article = requests.get(link)
article_content = article.content
soup_article = BeautifulSoup(article_content, 'html5lib')
body = soup_article.find_all('div', class_='articulo-cuerpo')
x = body[0].find_all('p')
# Unifying the paragraphs
list_paragraphs = []
for p in np.arange(0, len(x)):
paragraph = x[p].get_text()
list_paragraphs.append(paragraph)
final_article = " ".join(list_paragraphs)
news_contents.append(final_article)
# df_features
df_features = pd.DataFrame(
{'Content': news_contents
})
# df_show_info
df_show_info = pd.DataFrame(
{'Article Title': list_titles,
'Article Link': list_links,
'Newspaper': 'El Pais English'})
return (df_features, df_show_info)
ProxyScrape是网上最受欢迎、最可靠的代理服务提供商之一。三种代理服务包括专用数据中心代理服务器、住宅代理服务器和高级代理服务器。那么,使用 python 进行新闻文章网络搜刮的最佳 HTTP 代理的最佳解决方案是什么?在回答这个问题之前,最好先了解一下每种代理服务器的特点。
专用数据中心代理最适合高速在线任务,如从不同服务器流式传输大量数据(就大小而言)以进行分析。这也是企业选择专用代理在短时间内传输大量数据的主要原因之一。
专用数据中心代理具有多种功能,如无限带宽和并发连接、便于通信的专用 HTTP 代理以及更安全的 IP 验证。专用数据中心的正常运行时间为 99.9%,在任何会话期间都能正常工作,您大可放心。最后但同样重要的是,ProxyScrape 提供优质的客户服务,将在 24-48 个工作小时内帮助您解决问题。
其次是住宅代理。住宅代理是每个普通消费者的首选代理。主要原因是住宅代理的 IP 地址与 ISP 提供的 IP 地址相似。这意味着从目标服务器获得访问其数据的许可会比平常更容易。
ProxyScrape住宅代理的另一个特点是轮换功能。旋转代理可以帮助您避免账户被永久封禁,因为住宅代理会动态更改您的 IP 地址,使目标服务器难以检查您是否在使用代理。
除此之外,住宅代理的其他功能还包括:无限带宽、并发连接、专用 HTTP/s 代理、随时会话代理(因为代理池中有 700 多万个代理)、用户名和密码验证以提高安全性,最后但并非最不重要的一点是能够更改国家服务器。您可以通过在用户名验证中附加国家代码来选择所需的服务器。
最后一种是高级代理。高级代理与专用数据中心代理相同。功能保持不变。主要区别在于可访问性。在高级代理中,代理列表(包含代理的列表)向ProxyScrape网络上的每个用户开放。这就是为什么高级代理的成本低于专用数据中心代理的原因。
那么,使用 python 进行新闻文章网络搜刮的最佳 HTTP 代理的最佳解决方案是什么呢?答案就是 "住宅代理"。原因很简单。如上所述,住宅代理是一种旋转代理,这意味着您的 IP 地址会在一段时间内动态变化,这有助于在较短的时间内发送大量请求,从而欺骗服务器,而不会遭到 IP 屏蔽。
接下来,最好是根据国家更改代理服务器。您只需在 IP 验证或用户名和密码验证的末尾添加国家 ISO_CODE。
推荐阅读
抓取 YouTube 评论 - 5 个简单步骤2023 年八大最佳 Python 网络抓取工具
在本文中,我们通过了解网页流程设计和结构的基础知识,了解了网络刮擦的基础知识。我们还通过从新闻文章中提取数据获得了实践经验。如果操作得当,网络搜索可以创造奇迹。例如,可以根据提取的数据建立一个全面优化的模型,该模型可以预测类别并向用户显示摘要。最重要的是弄清自己的需求并了解页面结构。Python 有一些非常强大但易于使用的库,可用于提取您所选择的数据。这使得网络搜索变得非常简单和有趣。
需要注意的是,这段代码只适用于从这个特定网页中提取数据。如果我们想从其他页面提取数据,则需要根据该页面的结构优化代码。不过,一旦我们知道了如何识别它们,过程就完全一样了。
本文希望深入讲解使用 python 进行新闻文章网络搜刮的实用方法。需要记住的一点是,代理是网络搜刮的绝对必要条件。它有助于防止目标服务器的 IP 屏蔽。 ProxyScrape在使用 python 项目进行新闻文章网络搜刮时,《Python.org》为您提供了一个优秀而可靠的住宅代理。