爬虫下载网页文夹

news/2024/11/7 23:49:17/

爬虫下载网页pdf文件
在这里插入图片描述

import os
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
from urllib.parse import urljoin, unquote
from tqdm import tqdm
# 设置网页的URL
base_url = "http://119/download/dzz/pdf/"# 创建保存文件的文件夹,如果文件夹不存在则创建
download_folder = "downloaded_pdfs"
os.makedirs(download_folder, exist_ok=True)def get_name(base_url):name_list=[]# 获取网页内容response = requests.get(base_url)  # 发送请求获取网页内容response.raise_for_status()  # 检查请求是否成功,若不成功则抛出异常soup = BeautifulSoup(response.text, "html.parser")  # 解析HTML内容# 查找所有文件链接for link in soup.find_all("a"):  # 遍历网页中所有的<a>标签,找到每个链接name_list.append(link.get("href"))return name_list
f1_list=get_name(base_url)
for i1 in f1_list:if i1 and i1 not in ["../"]:print(i1)f1_url = urljoin(base_url, i1)  # 将相对链接转为完整的URLf2_list=get_name(f1_url)for i2 in f2_list:   if i2 and i2 not in ["../"]:f2_url = urljoin(f1_url, i2)  # 将相对链接转为完整的URLf3_list=get_name(f2_url)for i3 in tqdm(f3_list):   if i3 and i3 not in ["../"]:f3_url = urljoin(f2_url, i3)  # 将相对链接转为完整的URLresponse = requests.get(f3_url)  # 发送请求获取网页内容response.raise_for_status()  # 检查请求是否成功,若不成功则抛出异常file_response = requests.get(f3_url)  # 发送请求下载文件内容download_folder_new = download_folder+'/'+i1+i2download_folder_new=unquote(download_folder_new)os.makedirs(download_folder_new, exist_ok=True)download_folder_path=download_folder_new+i3download_folder_path = unquote(download_folder_path)with open(download_folder_path, "wb") as f:  # 以二进制写入方式保存文件f.write(file_response.content)  # 写入下载的文件内容到本地# print(f"{download_folder_path}下载完成")  # 打印下载完成信息

http://www.ppmy.cn/news/1545198.html

相关文章

Android15音频进阶之Cuttlefish搭建音频开发环境(九十二)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…

LLaMA系列一直在假装开源...

伙伴们&#xff0c;很奇怪~ 关于LLM的开源与闭源模型的竞争又开始愈发激烈。 众所周知&#xff0c;开源模型以其开放性和社区驱动的特点受到一部分用户的青睐&#xff0c;而闭源模型则因其专业性和性能优化被广泛应用于商业领域。由于大模型最近2年的突然兴起&#xff0c;开源…

桑基图在医学数据分析中的更复杂应用示例

桑基图&#xff08;Sankey Diagram&#xff09;能够有效地展示复杂的流动关系&#xff0c;特别适合用于医学数据分析中的多种转归和治疗路径的可视化。接下来&#xff0c;我们将构建一个稍微复杂的示例&#xff0c;展示不同疾病患者在治疗过程中的流动&#xff0c;以及他们的治…

当事人请求以审计单位的审计意见作为确定工程造价依据的,如何处理?

答&#xff1a;建设工程施工合同未约定工程造价以审计单位的审计意见为准&#xff0c;当事人请求以审计单位作出的审计意见、财政评审机构作出的评审结论作为确定工程造价依据的&#xff0c;人民法院不予支持。建设工程施工合同约定工程造价以审计意见为准&#xff0c;但审计单…

150道MySQL高频面试题,学完吊打面试官--平衡二叉树,红黑树,B树和B+树

前言 本专栏为150道MySQL大厂高频面试题讲解分析&#xff0c;这些面试题都是通过MySQL8.0官方文档和阿里巴巴官方手册还有一些大厂面试官提供的资料。 MySQL应用广泛&#xff0c;在多个开发语言中都处于重要地位&#xff0c;所以最好都要掌握MySQL的精华面试题&#xff0c;这也…

uniapp分享功能

页面生命周期 https://uniapp.dcloud.net.cn/tutorial/page.html#lifecycle onShareTimeline 监听用户点击右上角转发到朋友圈 微信小程序 2.8.1 onAddToFavorites 监听用户点击右上角收藏 微信小程序、QQ小程序 2.8.1 onShareAppMessage 用户点击右上角分享 微信小程序、QQ小程…

什么是QC协议,QC协议特点及XSQ1O芯片的应用领域

前言 快充技术在现代生活中的重要性不言而喻&#xff0c;它大大提高了充电效率&#xff0c;使人们可以在短时间内为设备充满电&#xff0c;从而提高生活和工作效率。在充电技术里&#xff0c;协议是实现电子设备之间有效通信的关键&#xff0c;其中PD协议&#xff08;Power De…

用 Python 爬取淘宝商品价格信息时需要注意什么?

用 Python 爬取淘宝商品价格信息时&#xff0c;需要注意以下方面&#xff1a; 一、法律和道德规范&#xff1a; 遵守法律法规&#xff1a;网络爬虫的行为应在法律允许的范围内进行。未经淘宝平台授权&#xff0c;大规模地爬取其商品价格信息并用于商业盈利等不当用途是违法的…