吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1786|回复: 12
收起左侧

[求助] Python3 下载文件 报错

  [复制链接]
回帖奖励 44 CB吾爱币 回复本帖可获得 1 CB吾爱币奖励! 每人限 1 次(中奖概率 70%)
刹那光华 发表于 2021-10-22 02:15
QQ浏览器直接打开链接显示:
无法安全地连接到此页面这可能是因为该站点使用过期的或不安全的 TLS 安全设置。如果这种情况持续发生,请与网站的所有者联系。

火狐浏览器没问题

云服务器的IE浏览器也能正常打开

PHP可以正常下载
file_put_contents("小说/".$_GET[ 'name' ].".txt", file_get_contents("https://xiazai.xqishu.com/txt/".$_GET[ 'name' ].".txt"));

唯独Python下不了,报错信息:
'Connection aborted.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None)
[Python] 纯文本查看 复制代码
import requests
import time
import logging

def output(title='',info=''):
    try:
        timeInfo = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        outputInfo = '[%s]\n%s => %s' % (timeInfo,title,info)
        logging.debug(outputInfo)
        print(outputInfo)
        return outputInfo
    except requests.exceptions.RequestException as e:
        logging.debug(title,'输出错误',e)

    
def DownLoad(name):
    try:#[url]https://xiazai.xqishu.com/txt/%E5%BC%82%E4%B8%96%E4%B9%8B%E4%BB%99%E4%B8%B4%E8%AF%B8%E7%95%8C.txt[/url]
        url = 'https://xiazai.xqishu.com/txt/%s.txt'%name
        path = '小说/%s.txt'%name
        Headers={
            'Host': 'www.xqishu.me',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
            'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
            'Accept-Encoding': 'gzip, deflate, br',
            'Alt-Used': 'xiazai.xqishu.com',
            'Connection': 'keep-alive',
            'Upgrade-Insecure-Requests': '1',
            'Sec-Fetch-Dest': 'document',
            'Sec-Fetch-Mode': 'navigate',
            'Sec-Fetch-Site': 'cross-site',
            'Sec-Fetch-User': '?1',
        }
        output('GET请求','Url:'+url+'  Path:'+path)
        r = requests.get(url, headers=Headers,stream=True)
        output('GET结果','StatusCode:'+str(r.status_code))
        
        if r.status_code == 200:
            with open(path, "wb") as code:
                code.write(r.content)
            return True
    except requests.exceptions.RequestException as e:
        output('Error',e)
    return False

if __name__ == '__main__':
    load = DownLoad('九极剑神')
    print(load)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

laos 发表于 2021-10-22 03:10

回帖奖励 +1 CB吾爱币

去掉headers里的host

或者

改成跟url相对应的

[Asm] 纯文本查看 复制代码
 url = 'https://xiazai.xqishu.com/txt/%s.txt'%n
        Headers={
            'Host': 'xiazai.xqishu.com'
}

 楼主| 刹那光华 发表于 2021-10-22 03:17
laos 发表于 2021-10-22 03:32
本帖最后由 laos 于 2021-10-22 03:39 编辑

刹那光华 发表于 2021-10-22 03:17
貌似没有效果,还是一样的错误

啊 抱歉, 我看了下

因为我copy下来发生的错误跟你的不同  删改了headers里的host后就正常了

微信截图_20211022033136.png
 楼主| 刹那光华 发表于 2021-10-22 04:29
laos 发表于 2021-10-22 03:32
刹那光华 发表于 2021-10-22 03:17
貌似没有效果,还是一样的错误
啊 抱歉, 我看了下

本地环境3.81 requests 2.25.1 443错误
云函数    3.6  requests 2.21.0 正常运行
感觉可能是网络问题,但是我打包后发到云服务器上面也不行。。。
wkfy 发表于 2021-10-22 05:27
r = requests.get(url, headers=Headers,stream=True,verfiy=False)
试试。
gentlespider 发表于 2021-10-22 08:39

回帖奖励 +1 CB吾爱币

应该是请求头的问题,试试改下看看
知心 发表于 2021-10-22 09:25

回帖奖励 +1 CB吾爱币

本帖最后由 知心 于 2021-10-22 09:27 编辑

微信截图_20211022092403.png
headers头里保留着结果信息足够了。
但是你保存文件的路径是有问题的,要么就写成绝对路径,要么就用os库的方法取一下当前运行环境的路径,做一个拼接,保证指定的文件夹是存在的。

运行环境:
python:3.7.4
requests:2.24.0
花不开但要富贵 发表于 2021-10-22 09:26

回帖奖励 +1 CB吾爱币

删除了Host就没问题了
image.png
magicianly 发表于 2021-10-22 09:31

回帖奖励 +1 CB吾爱币

你的头文件有问题,你'Connection'这个属性:长链接服务器,服务器是会断掉你的连接的,因为你用的是requests,而不是requests.session
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 21:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表