plaodj 发表于 2024-11-14 18:43

来请大神赐一段python 代码

想分析几十个html页面   html里面的<div class="content"></div>其它div里就不用分析

收集 html页面里的 <div class="content"></div> 标签里面是否有<a>标签   超链接如果没有则跳过   若有则提取这个超链接   有多少个就提取多少

并且把结果存入xlsx   每行一个文件的分析结果   第一列就是这个html文件的文件名   后面的列就是这个html里面存在的超链接   最好是 每个超链接占一个xlsx单元格

先谢了

Bayonet 发表于 2024-11-14 18:49

发悬赏啊,XD。

徐工 发表于 2024-11-14 18:50

学会用ai啊 这个需求还不简单

ZX0228 发表于 2024-11-14 18:52

用BeautifulSoup库啊,soup.find_all('div', class_='content')

52zuiyun 发表于 2024-11-14 18:54

import os
from bs4 import BeautifulSoup
import pandas as pd

def extract_links(html_content):
    soup = BeautifulSoup(html_content, 'html.parser')
    div_content = soup.find('div', class_='content')
    if div_content:
      links = for a in div_content.find_all('a', href=True)]
      return links
    return []

def analyze_html_files(directory):
    results = []
    for filename in os.listdir(directory):
      if filename.endswith('.html'):
            filepath = os.path.join(directory, filename)
            with open(filepath, 'r', encoding='utf-8') as file:
                html_content = file.read()
                links = extract_links(html_content)
                results.append( + links)
    return results

def save_to_excel(data, output_file):
    df = pd.DataFrame(data)
    df.to_excel(output_file, index=False, header=False)

# Usage example
directory = 'html_files'
output_file = 'results.xlsx'
results = analyze_html_files(directory)
save_to_excel(results, output_file)


-
演示为本地文件,2个库:beautifulsoup4、pandas,注意HTML编码为UTF-8
-

Miracle0927 发表于 2024-11-14 18:56

这个需求挺简单的,用BeautifulSoup就能实现
怀疑你是求的作业吧

徐工 发表于 2024-11-14 18:58

先装个 VScode 编辑器再装一下 AI插件推荐 https://tongyi.aliyun.com/lingma/download阿里云和腾讯的
https://marketplace.visualstudio.com/items?itemName=Tencent-Cloud.coding-copilot

徐工 发表于 2024-11-14 19:01

import os
from bs4 import BeautifulSoup
import openpyxl

# 设置要分析的HTML文件所在的目录
directory = "path/to/your/html/files"

# 创建一个新的Excel工作簿
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "HTML Links Analysis"

# 添加表头
ws.append(["文件名", "超链接"])

# 遍历目录中的每个HTML文件
for filename in os.listdir(directory):
    if filename.endswith(".html"):
      # 读取HTML文件内容
      with open(os.path.join(directory, filename), "r", encoding="utf-8") as file:
            content = file.read()
      
      # 解析HTML内容
      soup = BeautifulSoup(content, "html.parser")
      
      # 查找所有class为content的div标签
      content_divs = soup.find_all("div", class_="content")
      
      # 提取超链接
      links = []
      for div in content_divs:
            a_tags = div.find_all("a")
            if a_tags:
                for a_tag in a_tags:
                  links.append(a_tag.get("href"))
      
      # 将结果写入Excel文件
      ws.append( + links)

# 保存Excel文件
wb.save("html_links_analysis.xlsx")

徐工 发表于 2024-11-14 19:02

代码说明:
1. 设置目录:将directory变量设置为包含HTML文件的目录路径。

2. 创建Excel工作簿:使用openpyxl库创建一个新的Excel工作簿,并设置工作表标题。

3. 遍历HTML文件:遍历指定目录中的每个HTML文件。

4. 读取和解析HTML内容:读取HTML文件内容并使用BeautifulSoup库解析HTML。

5. 查找和提取超链接:查找所有class为content的div标签,并提取其中的<a>标签的超链接。

6. 写入Excel文件:将文件名和提取到的超链接写入Excel文件,每个超链接占一个单元格。

7. 保存Excel文件:保存生成的Excel文件。

请确保在运行代码之前安装所需的库:

pip install beautifulsoup4 openpyxl
将path/to/your/html/files替换为实际的HTML文件目录路径,然后运行代码即可。

wangjun1016 发表于 2024-11-14 19:19

哪个中文的python论坛人气旺啊?
页: [1] 2 3
查看完整版本: 来请大神赐一段python 代码