📜  python 网页抓取 - Python (1)

📅  最后修改于: 2023-12-03 15:34:13.226000             🧑  作者: Mango

Python 网页抓取

Python 是一种优秀的编程语言,它的强大功能也包括网页抓取。本文将介绍使用 Python 进行网页抓取的方法,既可以使用内置库,也可以使用第三方库。

内置库

Python 的标准库中已经提供了一些进行网页抓取的工具,包括 urllib 和 urllib2。它们能够实现基本的 GET 和 POST 请求,获取服务器响应的 HTML 内容,但是使用起来相对比较繁琐。

使用 urllib

下面是一个使用 urllib 进行网页抓取的示例代码:

import urllib.request

url = 'http://example.com/'
req = urllib.request.Request(url)
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
print(html)

代码解释:

  1. 导入 urllib.request 模块;
  2. 定义要抓取的网页的 URL;
  3. 根据 URL 创建一个 Request 对象;
  4. 使用 urllib.request.urlopen() 方法发送请求并获取响应;
  5. 读取服务器响应的 HTML 内容,并将其解码为 Unicode 字符串;
  6. 输出 HTML 内容。
使用 urllib2

下面是一个使用 urllib2 进行网页抓取的示例代码:

import urllib2

url = 'http://example.com/'
req = urllib2.Request(url)
response = urllib2.urlopen(req)
html = response.read()
print(html)

代码解释:

  1. 导入 urllib2 模块;
  2. 定义要抓取的网页的 URL;
  3. 根据 URL 创建一个 Request 对象;
  4. 使用 urllib2.urlopen() 方法发送请求并获取响应;
  5. 读取服务器响应的 HTML 内容;
  6. 输出 HTML 内容。
第三方库

除了内置库,Python 还有很多第三方库可以用于网页抓取,如 Requests 和 BeautifulSoup。它们的使用相对比较简单,可以大大提高开发效率。

使用 Requests

下面是一个使用 Requests 进行网页抓取的示例代码:

import requests

url = 'http://example.com/'
response = requests.get(url)
html = response.text
print(html)

代码解释:

  1. 导入 requests 模块;
  2. 定义要抓取的网页的 URL;
  3. 使用 requests.get() 方法发送请求并获取响应;
  4. 读取服务器响应的 HTML 内容;
  5. 输出 HTML 内容。
使用 BeautifulSoup

下面是一个使用 BeautifulSoup 进行网页抓取的示例代码:

import requests
from bs4 import BeautifulSoup

url = 'http://example.com/'
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
print(soup.prettify())

代码解释:

  1. 导入 requests 和 BeautifulSoup 模块;
  2. 定义要抓取的网页的 URL;
  3. 使用 requests.get() 方法发送请求并获取响应;
  4. 读取服务器响应的 HTML 内容;
  5. 使用 BeautifulSoup 将 HTML 解析为 BeautifulSoup 对象;
  6. 使用 prettify() 方法使解析后的 HTML 显示得更加美观;
  7. 输出美观的 HTML 内容。
总结

本文介绍了使用 Python 进行网页抓取的方法,包括内置库和第三方库。其中,内置库 urllib 和 urllib2 使用起来相对比较繁琐,而第三方库 Requests 和 BeautifulSoup 更加方便和易用。当然,还有很多其他的库可供选择,开发者可以根据自己的需求进行选择。