提取header头进行模块化处理

在进行爬取网上东西的时候一般网站都做了UA的过滤,解决办法就是在代码中加入。

所以才有了本篇提取header头信息单独写成一个模块或者说是函数/类的想法,直接上示例

1、把UA头信息在浏览器中复制出来,并存在一个txt文档中,如下是我提取的示例:

1 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
2 Accept-Language:zh-CN,zh;q=0.9
3 User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36

2、编写python代码,如下是我编写的python方法,也可以写成类,把公共的东西放在这里

 1 ‘‘‘
 2 读取文本内容并生成请求header头信息
 3 ‘‘‘
 4 def auto_make_header():
 5     ress_con = open("headers.txt","r",encoding="utf-8").readlines()
 6     keyy = []
 7     veluess =[]
 8     for ress in ress_con:
 9         res = ress.split(":")
10         keyy.append(res[0])
11
12         veluess.append(res[1].replace("\n",""))
13
14     header = dict(zip(keyy,veluess))
15     return header
16
17 # print(auto_make_header())

3、在编写请求的时候直接引用过来就可以了,减少了代码的书写,为提高工作效率节约了时间。如下是我编写的小例子

1 import requests
2 from make_header import auto_make_header
3 headers = auto_make_header()
4
5 url = "http://www.baidu.com"
6 res = requests.get(url=url,headers=headers)
7 print(res.text)

好了,本篇的小技巧小案例就到此了,是不是python写代码很简单。

原文地址:https://www.cnblogs.com/hanxiaobei/p/9350098.html

时间: 2024-12-05 09:00:54

提取header头进行模块化处理的相关文章

curl用法:获取网站的header头及状态码

curl命令最常用的方法是使用参数-I 获取域名或IP的header信息,包括HTTP返回状态码,server类型,文本类型,缓存时间等等:监控web服务时也常用此方法判断web服务是否正常: 监控web服务,可以使用curl获取网站的header头,查看返回值是否是200 OK,作为判断web服务正常的一个标准: 使用curl -I 可以获取,如果提取第一行信息时,会出现一些不需要的信息,那我们该怎么取呢? [[email protected] ~]$ curl -I mofansheng.b

nginx反向代理proxy_set_header自定义header头无效的问题

###案例1环境nginx,linux,tomcat域名访问是走nginx给后端服务器处理的,问题是域名经过nginx访问直接不能获取到headers,直接tomcat访问可以那么问题肯定在nginx上无法处理headers的问题了, 经过查询上面资料得到是nginx的锅,hearders有下划线的锅,nginx设置underscores_in_headers on,参照上面配置说.就可以处理,测试:http://apistore.baidu.com/astore/toolshttpproxyA

php常用的header头

<?php /** * php常用的header头设置... */ header('HTTP/1.1 200 OK'); // ok 正常访问 header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不存在 header('HTTP/1.1 301 Moved Permanently'); //设置地址被永久的重定向 301 header('Location: http://www.ithhc.cn/'); //跳转到一个新的地址 header('Refresh:

Curl发送header头信息

有些接口用CURL调用的时候,要发送header头信息 如百度的查询快递的接口 PHP代码如下: $url = "https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv/pae/channel/data/asyncqury?appid=4001&com={$type}&nu={$deliveryBn}";         $headers = array(         "Host: sp0.baidu.com"

python常用模块email----从原始邮件中提取邮件头信息

email.parser.Parser()的parsestr()和parse()方法都可以用来从原始邮件文件中提取邮件头信息.这两个方法的区别就parsestr处理的是字符串对象,parse处理的是文件对象.   让我们通过两个例子来了解这两个方法的使用.先来看一封邮件的原始信息的一部分: cat /tmp/email_test1.txt date: Wed, 16 Nov 2016 16:04:44 +0800 From: 3456789 <[email protected]> To: 12

curl get请求添加header头信息

function get($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPGET, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出. $header = ['User-Agent: php test']; //设置一个你的浏览器agent的header curl_setopt($ch, CURLOPT

PHP中header头设置Cookie与内置setCookie的区别

首先声明,浏览的Cookie操作都是通过HTTP Header(俗称"Http头") 来实现.所有的服务器与客户端之间Cookie数据传输都是通过Http请求头来操作. PHP中setCookie(函数的实现),就是对HTTP头进行封装,由此看来 使用 header 与 使用setCookie是一样的. 由于header头信息属于HTTP协议内容,必须先把头信息发送到服务器,再进行数据下载等其他操作,所以在setCookie 与 header 之前不能有任何内容输出(例如:echo/p

header头设置解决 “已拦截跨源请求:同源策略禁止读取位于 http://47.104.128.87/back/test/test 的远程资源。(原因:CORS 头缺少 &#39;Access-Control-Allow-Origin&#39;)。”

跨域请求错误提示如下图: 解决方法在请求的php页面添加header头: 代码如下: public function test() { //支持全域名访问,不安全,部署后需要固定限制为客户端网址 header('Access-Control-Allow-Origin:*'); //支持的http 动作 header('Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE'); //响应头 请按照自己需求添加. header('Access-Co

PHP使用CURL设置header头传参以及设置Content-Type: application/json类型的后台数据接收

CURL函数 public function CurlRequest($url,$data=null,$header=null){ //初始化浏览器 $ch = curl_init(); //设置浏览器,把参数url传到浏览器的设置当中 curl_setopt($ch, CURLOPT_URL, $url); //以字符串形式返回到浏览器当中 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //禁止https协议验证域名,0就是禁止验证域名且兼容p