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

使用Requests爬取网页后如何查找字符串及div字段特定值

嘿,我来帮你搞定这个需求!你现在的代码只是把页面原始内容打印出来,要实现查找页面特定字符串和提取div中的特定值这两个目标,咱们可以分步骤优化代码:

第一步:完善基础请求(可选但推荐)

先给请求加上基础的异常处理和浏览器模拟头,避免被网站反爬,同时确保请求成功:

import requests
from pprint import pprint

# 替换成你的目标网页URL
target_url = "https://your-target-url.com"
# 模拟浏览器请求头,避免被反爬拦截
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:
    # 发送请求
    page = requests.get(target_url, headers=headers)
    # 如果请求失败(比如404、500),直接抛出异常
    page.raise_for_status()
    # 用text获取字符串格式的HTML内容,比content更方便文本处理
    html_content = page.text
except requests.exceptions.RequestException as e:
    print(f"请求出错啦: {e}")
    exit()
第二步:查找页面中的特定字符串

直接用Python字符串的内置方法就能实现,简单高效:

# 替换成你要找的目标字符串
search_str = "你需要查找的内容"

if search_str in html_content:
    print(f"✅ 找到目标字符串: {search_str}")
    # 还可以获取字符串出现的起始位置
    start_pos = html_content.find(search_str)
    print(f"它的起始位置是: {start_pos}")
else:
    print(f"❌ 没找到目标字符串: {search_str}")
第三步:提取div中的特定值(用BeautifulSoup解析HTML)

直接处理原始HTML字符串太麻烦,推荐用BeautifulSoup库来解析HTML结构,先安装它:

pip install beautifulsoup4

然后根据你的需求选择解析方式:

from bs4 import BeautifulSoup

# 初始化解析器
soup = BeautifulSoup(html_content, "html.parser")

# 情况1:根据div的class属性查找(适合多个同类型div)
target_divs = soup.find_all("div", class_="your-target-class")
for idx, div in enumerate(target_divs, 1):
    # 获取div的纯文本内容,strip=True去掉多余空格换行
    div_text = div.get_text(strip=True)
    print(f"第{idx}个目标div的文本: {div_text}")
    # 如果div有自定义属性(比如data-id),可以直接获取
    div_data_id = div.get("data-id")
    if div_data_id:
        print(f"这个div的data-id值: {div_data_id}")

# 情况2:根据div的id属性查找(id是唯一的,适合单个div)
single_div = soup.find("div", id="your-target-id")
if single_div:
    print("\n单个目标div的内容:", single_div.get_text(strip=True))

# 情况3:查找div内部的特定子元素(比如div里的span标签)
if single_div:
    span_content = single_div.find("span").get_text(strip=True)
    print("div内部span的文本:", span_content)
整合后的完整代码

把上面的逻辑整合起来,就是一个完整的实现:

import requests
from pprint import pprint
from bs4 import BeautifulSoup

# 配置参数
target_url = "https://your-target-url.com"
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"
}
search_str = "你需要查找的内容"
target_div_class = "your-target-class"

try:
    page = requests.get(target_url, headers=headers)
    page.raise_for_status()
    html_content = page.text
except requests.exceptions.RequestException as e:
    print(f"请求出错: {e}")
    exit()

# 查找特定字符串
print("=== 查找特定字符串 ===")
if search_str in html_content:
    print(f"✅ 找到: {search_str}")
else:
    print(f"❌ 未找到: {search_str}")

# 提取div内容
print("\n=== 提取div内容 ===")
soup = BeautifulSoup(html_content, "html.parser")
target_divs = soup.find_all("div", class_=target_div_class)
if target_divs:
    for idx, div in enumerate(target_divs, 1):
        print(f"第{idx}个div: {div.get_text(strip=True)}")
else:
    print("未找到指定class的div元素")

内容的提问来源于stack exchange,提问作者Zachabossaloler Plays

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:29:08