利用python爬虫,提取C:/Users/test/Desktop/DIDItest文件夹下每个文件夹内的html文件源代码,并提取源代码中的ID、时间、发送号码、接收号码、发送内容,如果发送内容为音频则提取音频所在位置,反之则保留发送内容,并将爬取的内容写入csv中 网页内源代码如下: <html> <meta http-equiv="Content=-Type" content="text/html; charset=utf-8"> <head> <link href="http://192.167.1.101/hint.css" rel="stylesheet"></link> </head> <body>[talkid:138031361]2014年4月20日 03:55:45 , <span class="hint-success" data-hint"">434343</span> 向 <span class="hint-success" data-hint="">232323</span> 发送 我们已经是好友了,开始聊天吧! <p> ()</p> [talkid:138031362]2014年4月20日 04:45:45 , <span class="hint-success" data-hint"">434343</span> 向 <span class="hint-success" data-hint="">123456</span> 发送 音频 :[<ahref="files/f/f123fsasfsfsjdfrhf_n.m4a"]>音频</a> <p> ()</p> [talkid:138031363]2014年4月20日 04:55:45 , <span class="hint-success" data-hint"">434343</span> 向 <span class="hint-success" data-hint="">123456</span> 发送 音频 :[<ahref="files/f/f123fsasfsfsjdfrhf_n.jpg"]>图片</a> <p> ()</p> [talkid:138031364]2014年4月20日 05:55:45 , <span class="hint-success" data-hint"">434343</span> 向 <span class="hint-success" data-hint="">3234221</span> 发送 我们已经是好友了,开始聊天吧! <p> ()</p> [talkid:138031365]2014年4月20日 06:55:45 , <span class="hint-success" data-hint"">434343</span> 向 <span class="hint-success" data-hint="">1359075</span> 发送 我们已经是好友了,开始聊天吧! <p> ()</p> </body> </html>
时间: 2023-08-14 19:58:00 浏览: 104
你可以使用Python的beautifulsoup库来解析HTML文件并提取所需的内容。以下是一个示例代码,可以根据你的需求进行修改:
```python
import os
import csv
from bs4 import BeautifulSoup
# 文件夹路径
folder_path = 'C:/Users/test/Desktop/DIDItest'
# CSV文件路径
csv_file = 'output.csv'
# CSV文件列名
csv_columns = ['ID', '时间', '发送号码', '接收号码', '发送内容']
# 创建CSV文件并写入列名
with open(csv_file, 'w', newline='', encoding='utf-8') as file:
writer = csv.DictWriter(file, fieldnames=csv_columns)
writer.writeheader()
# 遍历文件夹内所有文件夹
for folder_name in os.listdir(folder_path):
folder = os.path.join(folder_path, folder_name)
if os.path.isdir(folder):
# 遍历文件夹内所有HTML文件
for file_name in os.listdir(folder):
if file_name.endswith('.html'):
file_path = os.path.join(folder, file_name)
# 解析HTML文件
with open(file_path, 'r', encoding='utf-8') as html_file:
soup = BeautifulSoup(html_file, 'html.parser')
# 提取所需内容
talk_id = soup.find('span', class_='hint-success').text.strip()
time = soup.find('body').contents[1].strip()
send_num = soup.find_all('span', class_='hint-success')[1].text.strip()
receive_num = soup.find_all('span', class_='hint-success')[2].text.strip()
send_content = soup.find_all('p')[1].text.strip()
# 如果发送内容为音频,则提取音频所在位置
if '音频' in send_content:
audio_link = soup.find('a', href=lambda href: href and '音频' in href)['href']
send_content = f'音频位置:{audio_link}'
# 写入CSV文件
writer.writerow({'ID': talk_id,
'时间': time,
'发送号码': send_num,
'接收号码': receive_num,
'发送内容': send_content})
```
该代码会在指定的文件夹路径下遍历每个文件夹,并提取每个文件夹内的HTML文件的源代码中的ID、时间、发送号码、接收号码和发送内容。如果发送内容为音频,则提取音频所在位置。最后,将提取的内容写入CSV文件中。请确保已安装beautifulsoup库,并将代码中的文件夹路径和CSV文件路径修改为你自己的路径。
阅读全文