Back to Insights生产力与科技工具

如何在5分钟内使用Python进行网络爬虫

Mercury Technology Solutions2020年3月20日3 min read

简而言之:网络爬虫自动化了从网站提取数据的过程,节省了时间和精力。本指南将带您通过使用Python从纽约MTA下载多个文件,强调法律考虑的重要性,并提供逐步的代码示例。

掌握网络爬虫:自动化您的数据提取

网络爬虫是一种强大的技术,用于自动访问和提取大量信息。它可以显著减少收集数据所需的时间和精力,将繁琐的手动任务转变为高效的自动化过程。

在本指南中,我将带您通过一个实际应用:从纽约MTA网站下载数百个文件。这个例子非常适合渴望探索网络爬虫世界的初学者。

理解网络爬虫

在深入代码之前,了解网络爬虫的伦理和法律考虑至关重要。始终阅读网站的条款和条件,以确保您对数据的预期使用是合规的。许多网站禁止将其数据用于商业目的。此外,避免过快下载数据,因为这可能会使服务器过载并导致被封锁。

检查网站以获取数据

网络爬虫的第一步是在网站的HTML中找到您想要提取的数据。对于我们的例子,我们将从MTA的网站抓取闸机数据,该网站从2010年5月到现在每周汇总的数据以.txt文件形式提供。

要找到相关的HTML元素:

  1. 右键单击网页并选择“检查”以查看网站的代码。
  2. 使用检查工具突出显示一个元素并找到其对应的HTML标签。在我们的例子中,目标数据文件位于<a>标签中,通常用于超链接。

使用Python编码

让我们开始使用Python进行网络爬虫所需的代码。我们将使用诸如requestsurllibBeautifulSoup等库来自动化下载过程。

步骤1:导入库

import requestsimport urllib.requestimport timefrom bs4 import BeautifulSoup

步骤2:访问网站

设置URL并请求访问网站内容。

url = 'http://web.mta.info/developers/turnstile.html'response = requests.get(url)

步骤3:解析HTML

使用BeautifulSoup解析HTML并创建可导航的结构。

soup = BeautifulSoup(response.text, "html.parser")

步骤4:定位链接

找到所有<a>标签,其中包含我们的文件链接,从第38行开始。

soup.findAll('a')one_a_tag = soup.findAll('a')[38]link = one_a_tag['href']

步骤5:下载文件

构建文件的完整URL并使用urllib

download_url = 'http://web.mta.info/developers/' + linkurllib.request.urlretrieve(download_url, './' + link[link.find('/turnstile_')+1:])

步骤 6:使用循环自动化

用循环替代手动下载,以自动化处理所有文件。

通过这些步骤,您已经在自动化数据下载过程的道路上迈出了重要一步。此技术不仅优化了效率,还为数据驱动的决策开辟了新的途径。

祝大家网页抓取愉快!

Originally published on MTS Blog & Research