Python爬虫入门教程
网络爬虫是一种自动化程序,用于从互联网上获取数据。Python 是一种功能强大且易于学习的编程语言,因此被广泛用于编写网络爬虫。本教程将带您从零开始学习如何使用 Python 编写简单的网络爬虫,以获取网页上的信息。
1. 准备工作
在开始之前,确保您已经安装了 Python 编程语言。您可以从 Python 官方网站 下载并安装 Python。另外,我们将使用 Python 的一个强大的库 requests
来发送 HTTP 请求,并使用 Beautiful Soup
库来解析网页内容。您可以使用以下命令来安装这些库:
pip install requests beautifulsoup4
2. 发送 HTTP 请求
首先,让我们学习如何使用 requests
库发送 HTTP 请求,并获取网页内容。下面是一个简单的示例代码:
import requests
url = 'https://example.com'
response = requests.get(url)
if response.status_code == 200:
print('请求成功!')
print('网页内容:')
print(response.text)
else:
print('请求失败!')
在这个示例中,我们使用 requests.get()
函数发送了一个 GET 请求到指定的 URL,并将响应存储在 response
变量中。然后我们检查响应的状态码,如果状态码为 200,表示请求成功,我们打印网页的内容;否则打印请求失败的消息。
3. 解析网页内容
接下来,我们将学习如何使用 Beautiful Soup
库来解析网页内容。Beautiful Soup
可以帮助我们从 HTML 或 XML 文档中提取数据。以下是一个简单的示例代码:
from bs4 import BeautifulSoup
html_doc = """
<html>
<head>
<title>示例网页</title>
</head>
<body>
<h1>标题</h1>
<p>这是一个段落。</p>
<a href="https://www.example.com">链接</a>
</body>
</html>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
# 获取标题
title = soup.title
print('标题:', title.text)
# 获取第一个段落
paragraph = soup.p
print('第一个段落:', paragraph.text)
# 获取所有链接
links = soup.find_all('a')
print('所有链接:')
for link in links:
print(link['href'], link.text)
在这个示例中,我们首先创建了一个包含 HTML 内容的字符串。然后我们使用 BeautifulSoup
对象解析这个字符串,并通过标签名获取标题、段落和链接等内容。
4. 编写爬虫程序
现在我们已经学会了如何发送 HTTP 请求并解析网页内容,让我们将这些知识应用到一个实际的爬虫程序中。下面是一个简单的示例,用于从网页中提取所有链接:
import requests
from bs4 import BeautifulSoup
def get_links(url):
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
links = soup.find_all('a')
return [link['href'] for link in links if link.get('href')]
else:
print('请求失败!')
return []
url = 'https://example.com'
links = get_links(url)
print('所有链接:')
for link in links:
print(link)
在这个示例中,我们定义了一个函数 get_links()
,它接受一个 URL 参数,并返回该网页中的所有链接。我们先发送 HTTP 请求获取网页内容,然后使用 BeautifulSoup
解析网页,并提取所有的链接。最后我们打印这些链接。
5. 总结
本教程介绍了如何使用 Python 编写简单的网络爬虫程序。我们学习了如何发送 HTTP 请求并获取网页内容,以及如何使用 Beautiful Soup
库解析网页