rest_framework_xml 解析xml成Python 字典格式数据对象
原创
文章标签 xml d3 数据 文章分类 Python 后端开发
©著作权归作者所有:来自51CTO博客作者ch3nnn的原创作品,请联系作者获取转载授权,否则将追究法律责任
XML
test.jpeg qr-code-1305143506.cos.ap-shanghai.myqcloud.com/test.jpeg "930b8ceb82c9e7ed3dc61bdc0f8577065f7484a7" JPEG 1664 2338 93 0xe0e0e0 0 JPEG 1664 2338 234344 93 1 王懿馨:101005:[object MouseEvent] 1430,396 1432,241 1586,242 1587,397
import iofrom rest_framework_xml.parsers import XMLParser# response.text ==> xmls = io.StringIO(response.text)parser_data = XMLParser().parse(s)
解析后数据
{ 'OriginalInfo': { 'Key': 'test.jpeg', 'Location': 'qr-code-1305143506.cos.ap-shanghai.myqcloud.com/test.jpeg', 'ETag': '"930b8ceb82c9e7ed3dc61bdc0f8577065f7484a7"', 'ImageInfo': { 'Format': 'JPEG', 'Width': 1664, 'Height': 2338, 'Quality': 93, 'Ave': '0xe0e0e0', 'Orientation': 0 } }, 'ProcessResults': { 'Object': { 'Format': 'JPEG', 'Width': 1664, 'Height': 2338, 'Size': 234344, 'Quality': 93, 'CodeStatus': 1, 'QRcodeInfo': { 'CodeUrl': '王懿馨:101005:[object MouseEvent]', 'CodeLocation': { 'Point': '1587,397' } } } }}
- 赞
- 收藏
- 评论
- *举报
上一篇:Python 枚举类 自定义状态
Original: https://blog.51cto.com/u_15722381/5483111
Author: ch3nnn
Title: rest_framework_xml 解析xml成Python 字典格式数据对象
相关阅读1
Title: 用python爬取jk小姐姐照片慢慢看「本地直接下载版」
我这里简单把下载写了下,直接运行代码就能下载,默认主下载目录是 D:\bcy ,一个用户图片一个文件夹,也可以自己修改文件主文件夹,没有文件夹会自动创建
只需要安装Python3环境和requests库就能使用,我用的Python版本是3.9
很多人学习蟒蛇,不知道从何学起。
很多人学习寻找python,掌握了基本语法之后,不知道在哪里案例上手。
很多已经可能知道案例的人,却不怎么去学习更多高深的知识。
这三类人,我给大家提供一个好的学习平台,免费获取视频教程,电子书,以及课程的源代码!
QQ群:101677771
欢迎加入,一起讨论学习
下载效果
代码如下:
<span class="hljs-keyword">import json
<span class="hljs-keyword">import os.path
<span class="hljs-keyword">import time
<span class="hljs-keyword">import requests
url = <span class="hljs-string">"https://bcy.net/apiv3/common/circleFeed"
par = {
<span class="hljs-string">'circle_id': <span class="hljs-number">492
}
header = {
<span class="hljs-string">'User-Agent': <span class="hljs-string">'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62',
<span class="hljs-string">'Referer': <span class="hljs-string">'https://bcy.net/tag/492'
}
res = requests.get(url, headers=header, params=par)
res_encode = res.text.encode(<span class="hljs-string">'utf-8')
res_json = json.loads(res_encode)
<span class="hljs-keyword">for item <span class="hljs-keyword">in res_json[<span class="hljs-string">'data'][<span class="hljs-string">'items']:
name = item[<span class="hljs-string">'item_detail'][<span class="hljs-string">'uname']
<span class="hljs-keyword">if <span class="hljs-keyword">not os.path.exists(<span class="hljs-string">f'D:\\bcy\\<span class="hljs-subst">{name}'):
os.makedirs(<span class="hljs-string">f'D:\\bcy\\<span class="hljs-subst">{name}')
os.chdir(<span class="hljs-string">f'D:\\bcy\\<span class="hljs-subst">{name}')
<span class="hljs-keyword">else:
os.chdir(<span class="hljs-string">f'D:\\bcy\\<span class="hljs-subst">{name}')
avatar = item[<span class="hljs-string">'item_detail'][<span class="hljs-string">'avatar']
avatar_name = str(avatar).rsplit(<span class="hljs-string">'.image')[<span class="hljs-number">0]
avatar_name1 = str(avatar_name).rsplit(<span class="hljs-string">'/')[<span class="hljs-number">-1]
print(<span class="hljs-string">f'<span class="hljs-subst">{avatar_name1}.jpg')
<span class="hljs-keyword">with open(<span class="hljs-string">f'<span class="hljs-subst">{avatar_name1}.jpg', <span class="hljs-string">'wb') <span class="hljs-keyword">as f1:
f1.write(requests.get(avatar, headers=header).content)
print(name, avatar_name1)
<span class="hljs-keyword">for image <span class="hljs-keyword">in item[<span class="hljs-string">'item_detail'][<span class="hljs-string">'image_list']:
images = image[<span class="hljs-string">'path']
images_name = str(images).rsplit(<span class="hljs-string">'.image')[<span class="hljs-number">0]
images_name1 = str(images_name).rsplit(<span class="hljs-string">'/')[<span class="hljs-number">-1]
<span class="hljs-keyword">with open(<span class="hljs-string">f'<span class="hljs-subst">{images_name1}.jpg', <span class="hljs-string">'wb') <span class="hljs-keyword">as f2:
f2.write(requests.get(images, headers=header).content)
print(<span class="hljs-string">f'<span class="hljs-subst">{images_name1}.jpg')
time.sleep(<span class="hljs-number">1)
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
补充
2022.1.1-11:01
并没有失效,502可能是你下载太快被禁止了,我本地使用没有问题
Original: https://www.cnblogs.com/sn5200/p/15878848.html
Author: Python可乐的呀
Title: 用python爬取jk小姐姐照片慢慢看「本地直接下载版」
相关阅读2
Title: python3.9安装pyqt5,并设置pycharm
python3.9安装pyqt,并设置pycharm
前言
这个学期的暑假实训需要使用pyqt开发gui界面,然后我的python不知道发生了什么,安装总是爆出各种奇怪的错误,安装完后,开发和运行的过程中也发生了很多的离奇的问题,我浪费了很多的时间在解决各种报错上,项目进度被耽误了许多,幸运的是后来得到了一份大佬打包好的pyqt运行环境,这才顺利的完成了整个开发过程。
在结束开发后,我决定重装python,并且重新认真的安装一次pyqt,在经过几次重装后,终于得到了一个能够正确运行的开发环境,未来一段时间都不会受到相关困扰了。
于是我将这次重装的过程和一些思索写在这里,以供我自己未来查阅和其他人参考。
python的版本
在我写这篇文章的这个时间,安装pyqt5的python版本应该是python3.9较为合适,使用python3.10安装会出现问题。
pyqt5能在python3.10 环境安装成功的版本是5.15.6 , 而pyqt5-tools的最新版本是:pyqt5-tools 5.15.4.3.2,所以就会出现这样一个状况,python3.10只能安pyqt5 5.15.6,而pyqt5-tools只能到pyqt5-tools 5.15.4.3.2,tools的版本跟不上,所以在安装tools的时候怎么安都安不上。
这种问题不仅仅是出现在pyqt,我记得曾经学深度学习时,下载某些三方库的时候也会发生版本不兼容的问题,我得到的一个经验就是,如果允许,尽量不要安装最新的语言版本,这会导致某些第三方库版本跟不上,我在这次实训中安装pyqt的问题就有一部分是自作聪明的安装了最新的python。
安装sip、pyqt、pyqt-tools和qscintilla
在安装pyqt前必须先安装sip包
pip install sip
wanchengsip的安装后,安装pyqt和pyqt-tools,
可以直接使用命令:
pip install PyQt5
pip install PyQt5-tools
不过国外的源,下载起来实在太慢了,有些时候还会超时,建议使用国内的镜像。
pip install PyQt5 -i https://pypi.douban.com/simple
pip install PyQt5-tools -i https://pypi.douban.com/simple
另外,还要额外下载一个qscintilla的库,他本来是包含在pyqt里的才对,但是不知道为什么总是会"发生找不到Qsci模块"的错误,我找到的解决方法就是额外下载相关的包,大概原因仿佛也是版本兼容问题?下载的命令如下。
pip install qscintilla -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
完成以上下载没问题的话(反正我重装的python3.9是没有问题发生的),会在python的安装目录的Lib/site-packages下看到如下的目录结构。
接着需要验证一下我们的安装是否成功:我们使用python自带的IDLE shell,然后输入
import PyQt5
import PyQt5.Qsci #这是为了验证Qsci是否安装成功
help(PyQt5)
help(PyQt5.Qsci)
如果结果类似如下则安装成功。可以使用pyqt进行基本的gui开发了。
有关pycharm的设置
经过以上的内容,可以使用pyqt进行开发,但是我们可以进一步设置pycharm以此来方便开发。
pyqt的tools中包含了designer.exe文件,可以用于设计ui界面。把他设定为pycharm的一个外部工具,会比在外面不停调用方便的多。
我们点击pycharm的文件->设置->工具外部工具,点击如下图所示的加号,就能够添加一个外部工具。
。。。。。。未完待续
Original: https://www.cnblogs.com/Akiyama-tsuki/p/16519080.html
Author: Akiyama_tsuki
Title: python3.9安装pyqt5,并设置pycharm
相关阅读3
Title: Python爬取全球最大视频网站YouTube视频
前言
作为目前全世界最大的视频网站,它几乎全是用Python来写的
该网站当前行业内在线视频服务提供商,该网站的系统每天要处理上千万个视频片段,为全球成千上万的用户提供高水平的视频上传、分发、展示、浏览服务。2015年2月,央视首次把春晚推送到该网站。
今天,我们就要用Python来快速批量下载该网站的视频
开发环境
版 本: python 3.8
编辑器:pycharm 2021.2
第三方模块:requests + tqdm
所需模块
import requests
import re
import json
from tqdm import tqdm
import os
开始代码编写
请求数据
headers = {
'cookie': 'VISITOR_INFO1_LIVE=9qZVrzB27uI; PREF=f4=4000000&tz=Asia.Shanghai; _ga=GA1.2.621834420.1648121145; _gcl_au=1.1.1853038046.1648121145; NID=511=Zc1APdmEbCD-iqVNVgI_vD_0S3LVI3XSfl-wUZEvvMU2MLePFKsQCaKUlUtchHSg-kWEVMGOhWUbxpQMwHeIuLjhxaslwniMh1OsjVfmOeTfhpwcRYpMgqpZtNQ7qQApY21xEObCvIez6DCMbjRhRQ5P7siOD3X87QX0CFyUxmY; OTZ=6430350_24_24__24_; GPS=1; YSC=0E115KqM_-I; GOOGLE_ABUSE_EXEMPTION=ID=d02004902c3d0f4d:TM=1648620854:C=r:IP=47.57.243.77-:S=YmZXPW7dxbu83bDuauEpXpE; CONSISTENCY=AGDxDeNysJ2boEmzRP4v6cwgg4NsdN4-FYQKHCGhA0AeW1QjFIU1Ejq1j8l6lwAc6c-pYTJiSaQItZ1M6QeI1pQ3wictnWXTOZ6_y8EKlt0Y_JdakwW6srR39-NLuPgSgXrXwtS0XTUGXpdnt4k3JjQ',
'referer': 'https://www.youtube.com/results?search_query=jk%E7%BE%8E%E5%A5%B3',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36'
}
url = 'https://www.有土比.com/watch?v=ImoXcSpR_io'
response = requests.get(url=url, headers=headers)
解析数据
json_str = re.findall('var ytInitialPlayerResponse = (.*?);var', response.text)[0]
json_data = json.loads(json_str)
video_url = json_data['streamingData']['adaptiveFormats'][0]['url']
audio_url = json_data['streamingData']['adaptiveFormats'][-2]['url']
title = json_data['videoDetails']['title']
title = title.replace(' ', '')
title = re.sub(r'[\/:|?*"<>]', '', title)
视频数据
video_pbar = tqdm(total=file_size)
with open(f'{title}.mp4', mode='wb') as f:
for video_chunk in video.iter_content(1024*1024*2):
f.write(video_chunk)
video_pbar.set_description(f'正在下载{title}视频中......')
video_pbar.update(1024*1024*2)
video_pbar.set_description('下载完成!')
video_pbar.close()
音频数据
audio = requests.get(audio_url, stream=True)
file_size = int(audio.headers.get('Content-Length'))
audio_pbar = tqdm(total=file_size)
with open(f'{title}.mp3', mode='wb') as f:
for audio_chunk in audio.iter_content(1024*1024*2):
f.write(audio_chunk)
audio_pbar.set_description(f'正在下载{title}音频中......')
audio_pbar.update(1024*1024*2)
audio_pbar.set_description('下载完成!')
audio_pbar.close()
合并音频和视频
def merge(title):
ffmpeg = r'D:\Download\ffmpeg\bin\ffmpeg.exe -i ' + title + '.mp4 -i ' + title + '.mp3 -acodec copy -vcodec copy ' + title + '-out.mp4'
os.popen(ffmpeg)
Original: https://www.cnblogs.com/qshhl/p/16106887.html
Author: 松鼠爱吃饼干
Title: Python爬取全球最大视频网站YouTube视频