python通过伪装头部数据抵抗反爬虫的实例


Posted in Python onMay 07, 2018

0x00 环境

系统环境:win10

编写工具:JetBrains PyCharm Community Edition 2017.1.2 x64

python 版本:python-3.6.2

抓包工具:Fiddler 4

0x01 头部数据伪装思路

通过http向服务器提交数据,以下是通过Fiddler 抓取python没有伪装的报文头信息

GET /u012870721 HTTP/1.1
Accept-Encoding: identity
Host: blog.csdn.net
User-Agent: <span style="color:#ff0000;">Python-urllib/3.6</span>
Connection: close

Python-urllib/3.6

很明显啊,我们暴露了。现在要问了,该怎么!模拟浏览器,让自己伪装成浏览器,一下是浏览器访问发送的头部数据

Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
Referer: http://write.blog.csdn.net/postlist
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8

0x02代码实现

from urllib import request
html_url = "http://blog.csdn.net/u012870721";
#伪装构造头
header ={
 "Connection": "keep-alive",
 "Upgrade-Insecure-Requests": "1",
 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36",
 "Accept":" text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
 "Accept-Encoding": "gzip,deflate",
 "Accept-Language": "zh-CN,zh;q=0.8"
};

#int main()
#{
req = request.Request(url=html_url, headers=header);

resp = request.urlopen(req);
# return 0;
# }

伪装后进行发送的信息头

GET /u012870721 HTTP/1.1 
Host: blog.csdn.net 
Connection: close 
Upgrade-Insecure-Requests: 1 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 
Accept-Encoding: gzip,deflate 
Accept-Language: zh-CN,zh;q=0.8

以上这篇python通过伪装头部数据抵抗反爬虫的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python函数返回值实例分析
Jun 08 Python
python编写简单爬虫资料汇总
Mar 22 Python
Windows系统下多版本pip的共存问题详解
Oct 10 Python
Python分支结构(switch)操作简介
Jan 17 Python
Django框架用户注销功能实现方法分析
May 28 Python
python 列表转为字典的两个小方法(小结)
Jun 28 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
Python使用qrcode二维码库生成二维码方法详解
Feb 17 Python
Python爬取365好书中小说代码实例
Feb 28 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
Python 如何在字符串中插入变量
Aug 01 Python
python 基于selectors库实现文件上传与下载
Dec 31 Python
Django Web开发中django-debug-toolbar的配置以及使用
May 06 #Python
python安装模块如何通过setup.py安装(超简单)
May 05 #Python
python实现守护进程、守护线程、守护非守护并行
May 05 #Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
May 05 #Python
Python3中的json模块使用详解
May 05 #Python
Python 编码规范(Google Python Style Guide)
May 05 #Python
python 编码规范整理
May 05 #Python
You might like
重置版战役片段
2020/04/09 魔兽争霸
dedecms系统常用术语汇总
2007/04/03 PHP
thinkphp微信开发(消息加密解密)
2015/12/02 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
js全选按钮的实现方法
2015/11/17 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
浅谈js之字面量、对象字面量的访问、关键字in的用法
2016/11/20 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
jQuery窗口拖动功能的实现代码
2017/02/04 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
[00:52]DOTA2国际邀请赛
2020/02/21 DOTA
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
python 杀死自身进程的实现方法
2019/07/01 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
Django中FilePathField字段的用法
2020/05/21 Python
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
农村党员一句话承诺
2014/05/30 职场文书
学校四风对照检查材料
2014/08/28 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
Python 中random 库的详细使用
2021/06/03 Python
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript
Windows Server 2012 修改远程默认端口3389的方法
2022/04/28 Servers