You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.3 KiB

import requests
from bs4 import BeautifulSoup
import csv
import os
url='http://www.lazytxt.shop:8081/xs/112/112040/'
header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0"}
response = requests.get(url, headers=header)
response.encoding="gbk"
#print(response.url)
#print(response.text)
soup=BeautifulSoup(response.text,"lxml")
re = soup.select('div.book_list ul li a')
#print(re)
dir_name = "许一个愿忘记你"
if not os.path.exists(dir_name):
os.mkdir(dir_name)
with open('许一个愿忘记你/许一个愿忘记你.csv', 'w', newline='', encoding='utf-8') as csvfile:
fieldnames = ['链接']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
urls=[]
for i in re:
c_url = i.get('href')
url1="http://www.lazytxt.shop:8081"
full_url = url1 + c_url
writer.writerow({'链接': full_url})
print(full_url)
urls.append(full_url)
print(len(urls))
re1 = soup.select('span.red a,h3.bookinfo_intro')
for i in re1:#获取书名作者简介
print(i.text)
for i in re:
c_url = i.get('href')
url1 = "http://www.lazytxt.shop:8081"
full_url = url1 + c_url
response = requests.get(full_url, headers=header)
response.encoding = "gbk"
soup = BeautifulSoup(response.text, "lxml")
chapter = soup.select_one('div.h1title h1').text
print(chapter)
for i in re:
c_url = i.get('href')
url1 = "http://www.lazytxt.shop:8081"
full_url = url1 + c_url
response = requests.get(full_url, headers=header)
response.encoding = "gbk"
soup = BeautifulSoup(response.text, 'lxml')
chapter = soup.select_one('div.h1title h1').text
print()
print(chapter)
content = soup.find('div', {'id': 'htmlContent'}).text.strip()
print(content)
#content = content.replace(" ", "")
file_name = os.path.join(dir_name, f"{chapter}.txt")
with open(file_name, 'w', encoding='utf-8') as f:
f.write(content)
def remove_leading_spaces_in_txt_files(directory):
# 遍历指定目录下的所有文件和子目录
for root, dirs, files in os.walk(directory):
for file in files:
# 检查文件是否为.txt文件
if file.endswith('.txt'):
# 构建文件的完整路径
file_path = os.path.join(root, file)
# 读取文件内容
with open(file_path, 'r', encoding='utf-8', errors='ignore') as f:
content = f.read()
# 删除每行前面的空格,并替换文件内容
# 注意:这里假设每行都应该有相同的处理,即删除行首空格
modified_content = '\n'.join(line.lstrip() for line in content.splitlines())
# 写回文件内容
with open(file_path, 'w', encoding='utf-8') as f:
f.write(modified_content)
# 使用函数,替换为你的目录路径
remove_leading_spaces_in_txt_files('许一个愿忘记你')