Python requests模块下载文件遇413请求实体过大错误,requests413,Python新手,想写个
Python requests模块下载文件遇413请求实体过大错误,requests413,Python新手,想写个
Python新手,想写个脚本去批量下载链接这个站点的文件。其中一个文件的下载页面是这样的:链接。
分析这个下载页面,发现点下载按钮的时候会向http://cdn.share-byte.net/d.php 这个URL去post,传递s和k两个值,这两个值可以通过正则匹配到,已经获得。
现在是把post返回的结果写文件,发现返回结果是个错误的HTML文件提示,不像浏览器点下载直接下载二进制文件,错误文件内容如下:
https://gist.github.com/zxmLoveLife/8680558
我代码里用到了Python的第三方模块requests和pyquery.代码如下,高手帮分析下,感激不尽。
代码截图如下:
线上浏览如下:
https://gist.github.com/zxmLoveLife/8680596
不要把 HTTP 响应的标头作为 HTTP 请求标头发出去…………
你那个 req 其实应该叫 res(ponse) 才对。
下面是我的代码:
import requests, refrom pyquery import PyQuery as pqurl = 'http://www.share-byte.net/jfKpK8'session = requests.Session()resp = session.get(url)d = pq(resp.text)script = d('#downloadFile').prev('script').text()t0 = re.findall(r"t\[0\] = \"(\w*)\"", script)t1 = re.findall(r"t\[1\] = \"(\w*)\"", script)params = {'s': t1[0], 'k': t0[0]}r = session.post('http://cdn.share-byte.net/d.php', data=params)print(r.status_code)print(r.content)
谢谢 @依云 @yiner ,dict是可以直接传给post函数的,另外,把返回的头部当作请求头部也是一个问题。Content-Type也是可以去掉的。
编橙之家文章,
相关内容
- Python函数调用输出问题新手,python函数,要求 01、定
- 请问有Django\pymysql\gevent成功经验项目吗,djangogevent,最近
- python关于pool+map+arcgis's py module并行计算疑惑,arcgismod
- python save保存图片系统提示错误请帮忙分析python源码,
- Python 邮件发送Flask-Mail不成功原因,pythonflask-mail,Flask
- 请问Python multiprocessing使用困惑求解,,自己在做一个p
- Redis存储带时间戳分类实时数据问题求教,redis实时数据
- Python类似java jstack命令的功能是什么,pythonjstack,最近有
- Python源码分析快排统计次数时if是否要算入计数中,p
- Python用requests和BeautifulSoup抓取信息失败请大神指导,
评论关闭