自己做的网站本地调试,骨科医生咨询在线咨询免费,海口网站建设哪家专业,河南多用户商城开发电视猫上面有《庆余年》分集剧情#xff0c;如何批量爬取下来呢#xff1f; 先找到每集的链接地址#xff0c;都在这个classepipage clear的div标签里面的li标签下面的a标签里面#xff1a; a href/drama/Yy0wHDA/episode1/a
这个…电视猫上面有《庆余年》分集剧情如何批量爬取下来呢 先找到每集的链接地址都在这个classepipage clear的div标签里面的li标签下面的a标签里面 a href/drama/Yy0wHDA/episode1/a
这个链接是相对地址前面加上https://www.tvmao.com才是完整的URL地址 每集的标题在p标签里面
p classepi_t
第7集范闲赴诗会作绝句惊艳京城
/p
在kimi中输入提示词
你是一个Python编程专家要完成以下任务的Python脚本的编写
打开网页https://www.tvmao.com/drama/Yy0wHDA/episode
在源代码中定位classepipage clear的div标签
提取div标签里面所有a标签的href值前面加上”https://www.tvmao.com”,构成网页下载URL
解析URL定位classepi_t的p标签提取其文本内容作为txt文档文件名提取classclear epi_c的article标签里面的文本内容保存为txt文档到D盘下的qyn文件夹
注意
每下载一个网页随机暂停1-10秒
网页文件名要进行处理去除不符合window系统文件命名规范的特殊字符处理文件名时要确保文件名中不包含任何特殊字符或不可见字符可以通过使用strip()方法来去除字符串两端的空白字符包括换行符和空格
每一步都要输出信息到屏幕
要有应对反爬虫的措施设置请求头 生成的源代码如下
import requests
from bs4 import BeautifulSoup
import random
import time
import os
# 目标网页URL
url https://www.tvmao.com/drama/Yy0wHDA/episode
# 设置请求头模拟浏览器访问
headers {
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
}
# 发送HTTP请求
response requests.get(url, headersheaders)
response.raise_for_status() # 如果请求失败将抛出异常
# 解析HTML
soup BeautifulSoup(response.text, html.parser)
# 定位classepipage clear的div标签
div_epipage soup.find(div, class_epipage clear)
# 提取所有a标签的href值并构成完整的网页下载URL
episode_links []
for a_tag in div_epipage.find_all(a, hrefTrue):
episode_url https://www.tvmao.com a_tag[href]
episode_links.append(episode_url)
# 创建文件夹
d盘_qyn文件夹路径 D:\\qyn
if not os.path.exists(d盘_qyn文件夹路径):
os.makedirs(d盘_qyn文件夹路径)
# 下载并保存每个剧集的文本内容
for episode_url in episode_links:
print(f正在下载{episode_url})
# 发送HTTP请求
episode_response requests.get(episode_url, headersheaders)
episode_response.raise_for_status()
# 解析HTML
episode_soup BeautifulSoup(episode_response.text, html.parser)
# 解析文件名
epi_t episode_soup.find(p, class_epi_t)
file_name epi_t.text.strip().replace(:, ).replace(/, -).replace(\\, -).replace(|, -) # 处理文件名
# 解析文本内容
epi_c episode_soup.find(article, class_clear epi_c)
text_content epi_c.get_text(stripTrue)
# 保存到txt文档
file_path os.path.join(d盘_qyn文件夹路径, file_name .txt)
with open(file_path, w, encodingutf-8) as file:
file.write(text_content)
print(f已保存{file_path})
# 随机暂停1-10秒
time.sleep(random.randint(1, 10))
print(所有剧集文本已下载完毕。)