在写Python爬虫的时候,经常要使用请求头去伪装成正常用户行为。请求头是向服务器发送请求时传递额外的重要信息。例如下图:
可以看到请求头里包含了很多信息,Cookie、User-Agent、Host等。把这些信息复制到文件里是这样的:
如果要使用请求头,就要把这些信息存入字典,一个比较笨的方法就是在每个键和值两边加上单引号。但是这样的话未免太麻烦,而且不太符合我们会python这个形象。那么有没有更好的方法呢?答案当然是肯定的。在介绍这个方法之前,先来学习一下split()。
split()是字符串的方法,主要用来根据某个字符去分割字符串,然后把分割后的结果作为列表返回。下面看一下一些例子。#定义字符串s = 'To be or not to be,that\'s a question.'#默认以空格作为分割符s.split()
#定义字符串s = '我是谁?我从哪里来?我要到哪里去?'#以“我”这个字符作为分割符s.split('我')#定义字符串s = '小明一把把把把把住了'>#当分割符在字符串里相邻时,会分割出空字符串s.split('把')
观察一下请求头,可以发现每一行都是“键: 值”这样的形式,那么先用split()根据“\n”分割出每一行,然后根据“: ”分割出键值对,即可生成字典。#定义请求头字典headers = {}#定义请求头字符串string = '''User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36'''#用循环将键值对写入请求头字典for line in string.split('\n'): key = line.split(': ')[0] value = line.split(': ')[1] headers[key] = value