爬虫是指通过编程自动从网页上获取信息的技术。简单来说,当你打开网页查看源代码时,那些 HTML 结构就是爬虫工作的对象,它就像一位帮你阅读并提取内容的'机器人'。
本文将详细讲解如何从零开始编写一个 Python 爬虫,即使是完全没接触过编程的朋友也能理解。
一、爬虫的基本流程
- 发送请求:向目标网页发送 HTTP 请求,获取网页内容。
- 解析网页:从返回的 HTML 或 JSON 内容中提取你需要的信息。
- 保存数据:将提取到的信息保存到文件或数据库中,以便后续分析。
二、常用爬虫库
在 Python 中,有两个非常流行的库用于爬虫开发:
- requests:用于发送网络请求,获取网页内容。
- BeautifulSoup:用于解析网页内容,提取需要的数据。
1. 安装库
首先,你需要安装这两个库。在命令行中执行以下命令:
pip install requests beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple
三、简单爬虫示例
接下来,我们会编写一个简单的爬虫,从一个网页上获取数据。
1. 获取网页内容
第一步是使用 requests 库来获取网页的内容。我们以获取百度首页为例。
import requests
# 发送请求获取网页内容
url = 'https://www.baidu.com'
response = requests.get(url)
# 打印网页内容
print(response.text)
这里 requests.get(url) 用于向指定网址发送请求并获取网页内容,response.text 则返回网页的 HTML 代码。运行后,你会看到大量的 HTML 代码,这就是百度首页的内容。
2. 解析网页内容
获取网页内容后,我们需要用 BeautifulSoup 库来解析 HTML,提取我们需要的信息。接下来我们解析百度首页的标题。
from bs4 import BeautifulSoup
# 解析网页内容
soup = BeautifulSoup(response.text, 'html.parser')
# 获取标题
title = soup.title.text
print('网页标题:', title)
BeautifulSoup(response.text, 'html.parser') 用于解析 HTML 内容,soup.title.text 返回网页的标题。输出结果如下:
网页标题:百度一下,你就知道
3. 提取更多信息
让我们继续提取网页中的链接(<a>标签中的 href 属性)。这非常有用,例如你想抓取某个网站上的所有文章链接。
# 获取所有的<a>标签
links = soup.find_all()
link links:
href = link.get()
(href)


