You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python3提取网页所有文字——以CBC网站地图为例

如何用Python3提取CBC站点地图页面中的所有文字?

嘿,要提取CBC站点地图里的各类文字(比如Arts、Books这类分类),用Python实现起来并不复杂。我一般会用requests库获取页面内容,再搭配BeautifulSoup来解析HTML,精准提取需要的文本。下面是具体的步骤和代码示例:

1. 先安装必要的依赖库

首先得确保你安装了requests(用来发送HTTP请求)和beautifulsoup4(用来解析HTML),打开终端执行以下命令:

pip install requests beautifulsoup4

2. 编写核心代码

下面的代码包含了两种提取方式:一种是提取页面所有可见文本,另一种是精准定位站点地图里的分类文字(更实用)。记得替换成CBC站点地图的真实URL哦:

import requests
from bs4 import BeautifulSoup

# 替换成CBC站点地图的实际URL
sitemap_url = "这里替换成CBC Site Map的真实网址"

# 模拟浏览器请求头,避免被网站拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
}

try:
    # 发送GET请求获取页面内容
    response = requests.get(sitemap_url, headers=headers)
    response.raise_for_status()  # 如果请求返回错误状态码,直接抛出异常

    # 用BeautifulSoup解析HTML内容
    soup = BeautifulSoup(response.text, "html.parser")

    # 方法一:提取页面所有可见文本(会包含导航、页脚等所有文字)
    full_page_text = soup.get_text(strip=True, separator="\n")
    print("=== 页面所有文字 ===")
    print(full_page_text)

    # 方法二:精准提取站点地图的分类文字(更推荐)
    # 先打开CBC站点地图页面,按F12打开开发者工具,找到分类所在的HTML标签
    # 比如假设分类都在class为"sitemap-category"的<li>标签里,就用下面的选择器
    # 你需要根据实际页面结构调整这个CSS选择器
    sitemap_categories = soup.select("li.sitemap-category a")
    
    print("\n=== 精准提取的站点地图分类 ===")
    for category in sitemap_categories:
        print(category.get_text(strip=True))

except requests.exceptions.RequestException as e:
    print(f"请求过程中出错了:{e}")

一些关键说明

  • 请求头的作用:很多网站会拦截没有浏览器标识的请求,所以加上User-Agent模拟真实浏览器访问,能减少被拦截的概率。
  • 精准提取的技巧:如果只想要站点地图里的分类(比如Arts、Books),不要直接提取所有文本,而是先通过浏览器开发者工具查看这些分类对应的HTML标签和类名,调整代码里的CSS选择器(比如soup.select()里的参数),这样能拿到更干净的结果。
  • XML站点地图的情况:如果CBC的站点地图是XML格式(比如/sitemap.xml),那解析时要把BeautifulSoup的解析器改成"xml",然后提取对应XML标签的内容即可。
  • 遵守网站规则:不要频繁发送请求,避免给服务器造成压力,同时注意查看网站的robots.txt文件,确认是否允许爬取站点地图。

内容的提问来源于stack exchange,提问作者Naghmeh Fotowat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:46:44