python获取一个网页的所有文字,图片,保存为对应的txt和jpg文件

  1. 网络请求:使用Python发送HTTP请求获取网页内容,可以使用Python内置的urllib或第三方库requests。

  2. 解析HTML:解析获取到的网页内容,可以使用Python中的BeautifulSoup、lxml等库进行HTML解析。

  3. 提取文本:通过解析HTML文件,可以提取出网页中所有的文本内容,可以使用BeautifulSoup中的get_text()方法。

  4. 下载图片:通过解析HTML文件,可以提取出图片的链接,然后使用Python中的urllib或requests库下载图片。

  5. 保存文件:将提取的文本和下载的图片保存为对应的txt和jpg文件,可以使用Python内置的open()函数进行文件操作。

示例代码:

python
import requests
from bs4 import BeautifulSoup

# 发送网络请求
url = 'http://www.example.com'
response = requests.get(url)

# 解析HTML
soup = BeautifulSoup(response.text, 'lxml')

# 提取文本
text = soup.get_text()

# 下载图片并保存
for img in soup.find_all('img'):
    img_url = img.get('src')
    img_name = img_url.split('/')[-1]
    r = requests.get(img_url)
    with open(img_name, 'wb') as f:
        f.write(r.content)

# 保存文本
with open('example.txt', 'w', encoding='utf-8') as f:
    f.write(text)

以下是一个示例代码,用于使用 Python 实现读取文件夹中的图片,将水印图片随机打在图片上,并保存打上水印后的图片到同一文件夹,同时将水印位置保存为 YOLO 格式的 txt 文件,每个图片txt 文件单独保存,所有图片txt 文件保存在同一个文件中: ```python import cv2 import random import os def add_watermark(image, watermark_text): # 选择字体、字号、字体厚度等参数 font = cv2.FONT_HERSHEY_SIMPLEX font_scale = 1 font_thickness = 2 # 获取文字的大小 text_size, _ = cv2.getTextSize(watermark_text, font, font_scale, font_thickness) # 随机生成水印的位置 x = random.randint(0, image.shape[1] - text_size[0] - 10) y = random.randint(text_size[1] + 10, image.shape[0] - 10) # 在图片上添加水印 cv2.putText(image, watermark_text, (x, y), font, font_scale, (0, 0, 255), font_thickness) return (x, y) def save_yolo_format_txt(image_path, watermark_position): # 获取图片文件名(不包含路径扩展名) image_name = os.path.splitext(os.path.basename(image_path))[0] # YOLO 格式的水印位置 x_center = watermark_position[0] + watermark_position[2] / 2 y_center = watermark_position[1] + watermark_position[3] / 2 width = watermark_position[2] height = watermark_position[3] # 保存水印位置到 YOLO 格式的文本文件 save_txt_path = f'{image_name}.txt' with open(save_txt_path, 'w') as f: f.write(f'0 {x_center} {y_center} {width} {height}') # 图片文件夹路径 folder_path = 'images_folder' # 水印图片路径 watermark_path = 'watermark.png' # 读取水印图片 watermark_image = cv2.imread(watermark_path) # 遍历文件夹中的图片 for filename in os.listdir(folder_path): if filename.endswith('.jpg') or filename.endswith('.png'): # 图片路径 image_path = os.path.join(folder_path, filename) # 读取图片 image = cv2.imread(image_path) # 添加水印并保存水印位置 watermark_position = add_watermark(image, watermark_image) # 保存带有水印的图片 save_image_path = os.path.join(folder_path, f'watermarked_{filename}') cv2.imwrite(save_image_path, image) # 保存水印位置到 YOLO 格式的文本文件 save_yolo_format_txt(image_path, watermark_position) ``` 请确保您将代码中的 `images_folder` 替换为包含要处理图片文件夹的路径,并将 `watermark.png` 替换为您的水印图片的路径。代码将遍历文件夹中的所有图片,并将水印添加到每张图片上,同时保存带有水印的图片水印位置的 YOLO 格式的 txt 文件。每张图片txt 文件将与对应图片文件同名,并保存在同一文件夹中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值