Python 下载RAR文件

#引入模块

import requests

from lxml import etree

from urllib import request

import os

from requests.models import Response

#创建保存文件夹:如果没有直接创建,如果有保存路径

if __name__ == '__main__':
    
    if not os.path.exists('./jian'):

    os.mkdir('./jian')
        

         

#爬取网页地址

url ='https://sc.chinaz.com/jianli/free.html'
 #   User-Agent  伪装网页信息

 # headers = {

 #     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'

    # }

#获取网页信息

jian = requests.get(url)

response = str(jian.content,'utf-8')

# print(response)

#使用etree模块获取网页下载地址信息

parser = etree.HTML(response)

r = parser.xpath('//div[@class="sc_warp  mt20"]//div/a/@href') 

#使用for循环爬取你想要的页数(也可以用input自己输入)

for a in range(2,3):  

    url1 ='https://sc.chinaz.com/jianli/free_%d.html'

    list_url =format(url1%a)

    new_jian = requests.get(list_url)

    data_new_jian = str(new_jian.content,'utf-8')

    # print(data_new_jian)      

    new_parser = etree.HTML(data_new_jian)

    new_r = new_parser.xpath('//div[@class="sc_warp  mt20"]//div/a/@href')

#第一页网址与之后网页格式不相同故需要合并到一个list(除第一页其余格式相同)

list_r= r + new_r

#获取网页信息缺少‘https:’ 使用for 循环组合完整网页

for j in list_r:

    # print(j)

    jian_url = 'https:' + j

    # print(jian_url)

        #在爬取网页地址出现原网址报错使用 try: excepte 打印报错信息并继续执行(作者是初学者,暂时不会写爬取到具体网址出错,打印出报错网址,继续学习后续持续更新)

    try:          
        jian2 = requests.get(jian_url)

        response1 = str(jian2.content,'utf-8')

    except Exception as result:

        print('发生错误请查看:',result)

 #使用etree模块获取网页下载地址信息链接,保存到创建文件夹

    paresr1 = etree.HTML(response1)

    r1 = paresr1.xpath('//div[@class="clearfix mt20 downlist"]/ul/li/a/@href')[1]

    jian_name = paresr1.xpath('//div[@class="ppt_tit clearfix"]/h1/text()')[0]

    # print(r1)

    # print(jian_name)
    rar = requests.get(r1)

    with open('./jian/' + str(jian_name) + '.rar','wb') as code:

        code.write(rar.content)

print('执行完毕!!!')

本文章内使用网址仅供学习使用,如有侵权请立刻联系作者,立刻删除

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Python可以通过使用第三方库来读取RAR文件。其中最常用的第三方库是`rarfile`。你可以使用pip来安装`rarfile`库:`pip install rarfile`。 使用`rarfile`库读取RAR文件的步骤如下: 1. 首先,导入`rarfile`库:`import rarfile` 2. 创建一个`RarFile`对象,传入RAR文件的路径作为参数:`rar = rarfile.RarFile("file.rar")` 3. 可以使用`RarFile.namelist()`方法获取RAR文件中的所有文件列表:`file_list = rar.namelist()` 4. 可以使用`RarFile.extract()`方法提取RAR文件中的文件到指定目录:`rar.extractall("output_folder")` 以下是一个完整的示例代码,读取RAR文件并提取其中的文件: ```python import rarfile rar = rarfile.RarFile("file.rar") file_list = rar.namelist() rar.extractall("output_folder") for file in file_list: print(file) ``` 总结起来,使用`rarfile`库可以方便地读取RAR文件,获取其中的文件列表和提取文件。 ### 回答2: Python读取RAR文件是一个常见的操作,可以使用第三方库来实现。 其中比较流行的是pyunpack库。pyunpack是一个用于解包各种压缩文件的库,包括RAR文件。需要注意的是,pyunpack只能解压文件,不能压缩文件。 首先需要安装pyunpack库,可以使用pip命令来安装:pip install pyunpack 安装完成后,可以使用以下代码来读取RAR文件: from pyunpack import Archive Archive('file.rar').extractall('destination_folder/') 上述代码中,'file.rar'是要读取的RAR文件名,'destination_folder/'是解压文件的目标文件夹路径。 另一种方法是使用rarfile库。rarfilePython的一个库,可以用来读取RAR文件。 首先需要安装rarfile库,可以使用pip命令来安装:pip install rarfile 安装完成后,可以使用以下代码来读取RAR文件: import rarfile with rarfile.RarFile('file.rar', 'r') as rar_file: rar_file.extractall('destination_folder/') 上述代码中,'file.rar'是要读取的RAR文件名,'destination_folder/'是解压文件的目标文件夹路径。 以上是两种常见的方法,可以根据个人需求选择适合的方法来读取RAR文件。 ### 回答3: Python提供了多种方法来读取RAR文件。其中一种常用的方法是使用第三方库rarfile。 首先,需要使用pip工具安装rarfile库。在命令行中输入以下命令进行安装: ``` pip install rarfile ``` 接下来,可以使用以下代码来读取RAR文件: ```python import rarfile # 创建一个RARFile对象 rar = rarfile.RarFile('example.rar') # 获取RAR文件中的文件列表 file_list = rar.namelist() # 读取RAR文件中的文件内容 for file_name in file_list: # 打开一个文件 file = rar.open(file_name) # 读取文件内容 content = file.read() # 在控制台输出文件内容 print(content) # 关闭文件 file.close() # 关闭RAR文件 rar.close() ``` 上述代码首先创建了一个RARFile对象,然后使用`namelist`方法获取RAR文件中的文件列表。接下来,使用`open`方法打开每个文件,并使用`read`方法读取文件内容。最后,使用`close`方法关闭文件RAR文件。 需要注意的是,读取RAR文件的前提是已经安装了rarfile库,并且需要替换`example.rar`为实际的RAR文件路径。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值