Beautiful Soup 简明教程

Beautiful Soup - Scrape HTML Content

从网站中提取数据的过程称为网络抓取。网页可能包含 URL、电子邮件地址、图像或任何其他内容,我们可以将其存储在文件中或数据库中。手动搜索网站是一个繁琐的过程。有各种网络抓取工具可以实现该过程的自动化。

有时通过使用“robots.txt”文件禁止网络抓取。一些热门的网站提供了 API,以结构化方式访问其数据。不道德的网络抓取可能会导致你的 IP 被封禁。

Python 被广泛用于网络抓取。Python 标准库具有 urllib 包,该包可用于从 HTML 页面中提取数据。由于 urllib 模块已与标准库捆绑在一起,因此不需要安装它。

urllib 包是 Python 编程语言的 HTTP 客户端。当我们想要打开和读取 URL 时,urllib.request 模块非常有用。urllib 包中的其他模块有 −

  1. urllib.error 定义了 urllib.request 命令引发的异常和错误。

  2. urllib.parse 用于解析 URL。

  3. urllib.robotparser 用于解析 robots.txt 文件。

使用 urllib 模块中的 urlopen() 函数从网站读取网页的内容。

import urllib.request
response =  urllib.request.urlopen('http://python.org/')
html = response.read()

你也可以为此目的使用 requests 库。使用之前你需要安装它。

pip3 安装 requests

在以下代码中,抓取了 http://www.tutorialspoint.com 的主页 −

from bs4 import BeautifulSoup
import requests


url = "https://www.tutorialspoint.com/index.htm"
req = requests.get(url)

然后用 Beautiful Soup 解析由以上两种方法获得的内容。