Python爬虫:将headers请求头字符串转为字典的方法

yipeiwu_com7年前Python爬虫

原生请求头字符串

raw_headers = """Host: open.tool.hexun.com
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
Accept: */*
Referer: http://stock.hexun.com/gsxw/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8"""

将字符串转为字典

split(sep=None, maxsplit=None)

headers = dict([line.split(": ",1) for line in raw_headers.split("\n")])

输出测试

print(headers)
"""
{
  'Accept-Language': ' zh-CN,zh;q=0.9,en;q=0.8', 
  'Accept-Encoding': ' gzip, deflate', 
  'Accept': ' */*', 
  'User-Agent': ' Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36', 
  'Host': ' open.tool.hexun.com', 
  'Referer': ' http://stock.hexun.com/gsxw/', 
  'Pragma': ' no-cache', 
  'Cache-Control': ' no-cache'
}

"""

封装为函数

def get_headers(header_raw):
  """
  通过原生请求头获取请求头字典
  :param header_raw: {str} 浏览器请求头
  :return: {dict} headers
  """
  return dict(line.split(": ", 1) for line in header_raw.split("\n"))


def get_cookies(cookie_raw):
  """
  通过原生cookie获取cookie字段
  :param cookie_raw: {str} 浏览器原始cookie
  :return: {dict} cookies
  """
  return dict(line.split("=", 1) for line in cookie_raw.split("; "))

以上这篇Python爬虫:将headers请求头字符串转为字典的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python3使用正则表达式爬取内涵段子示例

Python3使用正则表达式爬取内涵段子示例

本文实例讲述了Python3使用正则表达式爬取内涵段子的方法。分享给大家供大家参考,具体如下: 似乎正则在爬虫中用的不是很广泛,但是也是基本功需要我们去掌握。 先将内涵段子网页爬取下来,...

Python爬虫中urllib库的进阶学习

Python爬虫中urllib库的进阶学习

urllib的基本用法 urllib库的基本组成 利用最简单的urlopen方法爬取网页html 利用Request方法构建headers模拟浏览器操作 error的异常操作 ur...

python爬虫正则表达式之处理换行符

刚开始学python,记录下问题。 代码如下: #coding:utf-8 import re,urllib2 def getHTML(url): html=urllib2.ur...

scrapy爬虫完整实例

本文主要通过实例介绍了scrapy框架的使用,分享了两个例子,爬豆瓣文本例程 douban 和图片例程 douban_imgs ,具体如下。 例程1: douban 目录树 doub...

python爬虫解决验证码的思路及示例

如果直接从生成验证码的页面把验证码下载到本地后识别,再构造表单数据发送的话,会有一个验证码同步的问题,即请求了两次验证码,而识别出来的验证码并不是实际需要发送的验证码。有如下几种方法解决...