Python网络爬虫数据格式学习(转换headers、表单和urlencode数据为字典格式)


最近在学习爬虫时经常要复制浏览器的headers和表单数据到Python进行操作,但是复制过来的IE的数据格式是对用制表符('\t')进行分隔,而Chrome复制过来的是用冒号(':')分隔,不能够直接转为字典格式使用。为了方便以后编程就自己写了个小程序进行转换。

Python的标准库应该有类似的方法,但自己找不到,知道的朋友麻烦告知下。 谢谢!

# -*- coding: utf-8 -*-
"""
@author: Cy
"""
def strtodict(inputstr,sep=':',linesep='\n'):
    #linesep为行分隔符标记,默认为换行符。
    #sep为内部分隔符标记,默认为冒号
    if linesep !='\n':
        inputstr=inputstr.replace(linesep,'\n')
    strlist=RemoveEmptyLineInList(inputstr.split('\n'))
    strdicts={}
    for line in strlist:
        line=line.split(sep)
        if sep==':':
            strdicts[line[0]]=':'.join(line[1:])
        else:
            strdicts[line[0]]=line[1]
    return strdicts


def RemoveEmptyLineInList(listObj):
    newList = []
    for val in listObj:
        if val :
            newList.append(val);
    return newList

还发现了urllib库的urllib.parse.unquote()可以将IE浏览器里的已经urlencode的地址转化为原始数据。

tmppostdata=urllib.parse.unquote(urlencodedata)
postdata=strtodict(tmppostdata,sep='=',linesep='&')

2016年9月4日还发现了别人另外一种更简洁的代码:

dict([item.split('=') for item in url_encode_data.split('&')])
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 前言 作为一名合格的数据分析师,其完整的技术知识体系必须贯穿数据获取、数据存储、数据提取、数据分析、数据挖掘、...
    whenif阅读 18,106评论 45 523
  • 原文链接 《Python数据分析》(Python for Data Analysis, 2nd Edition)第...
    李绍俊阅读 8,576评论 0 5
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,807评论 1 92
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,579评论 6 427