一、使用Fiddler抓取HTTPS设置

(1)菜单栏 Tools > Telerik Fiddler Options 打开“Fiddler Options”对话框

(2)HTTPS设置:选中Capture HTTPS CONNECTs(捕捉HTTPS连接),选中Decrypt HTTPS traffic(解密HTTPS通信),另下拉菜单中选中...from all processess(从所有进程),与lgnore server certificate errors(忽略服务器证书错误)

(3)为Fiddler配置Windows信任:Trust Root Certificate(受信任的根证书)

(4)Connection中选中:Allow remote computers to connect(允许远程连接),Act as system proxy on startup(作为系统启动代理)

(5)重启Fiddler,使配置生效(这一步必须做)

二、使用Fiddler捕捉Chrome的会话

(1)安装SwitchyOmega代理管理Chrome浏览器插件

(2)设置代理服务器为:127.0.0.1:8888

(3)通过浏览器插件换设置好的代理

三、常用请求头

四、Cookie和Session

(1)Cookie:通过客户端记录的信息确定用户的身份

(2)Session:通过服务器记录的信息确定用户的身份

**urllib2在python3.x中被修改成urllib.request

五、函数解析

(1)resoponse = urllib.request.urlopen(url,data=None,timeout=

url:第一个参数必须传送

data:经过编码的post数据,默认为空

timout:可选超时期,默认为60s

(2)response.read():读取返回的文本

(3)response.getcode():返回整数形式的HTTP响应代码

(4)response.geturl():返回的数据的实际url

(5)response.info:返回映射对象(HTTP报头)

(6)urllib.urlencode():转换url编码格式(字符串)

(7)urllib.unquote():解码工作

(8)request.add_data():将data数据传入request内

六、自定义Opener

urlopen函数不支持代理、cookie或者其他的HTTP高级功能,需要使用 build_opener() 函数创建自定义opener对象

(1)Proxy(代理)设置

importurllib.request#定义一个代理开关

proxyWork =True#定义两个代理模式,其中一个为不适用代理

h1 = urllib.request.ProxyHandler({"http":"111.111.111.111:80"})

h2=urllib.request.ProxyHandler()ifproxyWork:

opener=urllib.request.build_opener(h1)else:

opener=urllib.request.build_opener(h2)#使用我们自定义的代理opener的open()方法打开url

response = opener.open("http://www.baidu.com/")

html=response.read()print(html)

(2)Debug Log

importurllib.request#打开HTTP debug log

httpHandler = urllib.request.HTTPHandler(debuglevel=1)#打开HTTPs debug log

httpsHandler = urllib.request.HTTPSHandler(debuglevel=1)#同时使用两种不同的 debug log 模式

opener =urllib.request.build_opener(httpHandler,httpsHandler)#使用install_opener来创建全局的opener

urllib.request.install_opener(opener=opener)#urlopen默认使用之前创建的全局opener

response = urllib.request.urlopen("http://www.baidu.com")

七、Cookie

(1)Cookie格式: Set-Cookie: NAME=VALUE; Expires=DATE ;Path=PATH; Domain =DOMAIN_NAME; SECURE

**登录一般都会现有一个HTTP GET,用于拉取一些信息及获得 Cookie, 然后在HTTP POST 登录

(2)cookielib 模块,主要作用是提供用于存储cookie的对象,Python处理cookie一般是cookielib和HTTPCookieProcessor一起使用

该模块主要包括:CookieJar FileCookieJar MozillaCookieJar LWPCookieJar

(3)CookieJar : 管理HTTP cookie的值,存储HTTP请求生成的cookie、向传出的HTTP请求添加Cookie对象

(4)FileCookieJar(filename(文件名),delayload=None(延迟访问时间),policy=None):创建FileCookieJar 实例,用于检索cookie信息,并将cookie存储到文件中

(5)MozillaCookieJar (filename(文件名),delayload=None(延迟访问时间),policy=None):创建于Mozilla浏览器cookies.txt兼容的FileCookieJar实例

(6)LWPCookieJar (filename(文件名),delayload=None(延迟访问时间),policy=None):创建于libwww-perl的Set-Cookie3文件格式兼容的FileCookieJar实例

(7)代码实例

importurllib.requestimporthttp.cookiejar#声明一个CookieJar对象实例来保存cookie

cookie =http.cookiejar.CookieJar()#利用HTTPCookieProcessor对象创建cookie处理器

handler = urllib.request.HTTPCookieProcessor(cookiejar=cookie)#通弄过handler来构建opener

opener =urllib.request.build_opener(handler)#此处open方法同urlopen方法

response = opener.open("http://www.baidu.com")#按照标准格式存储Cookie

cookies = ""

for item incookie:

cookies= cookies + item.name + "=" + item.value + ";"

#舍去最后一位的分号

print(cookies[:-1])

使用get方法获取Cookie保存到变量

importurllib.requestimporthttp.cookiejar#设置保存cookie的文件,同级目录的cookie.txt

filename = 'cookie.txt'

#声明一个LWPCookieJar(有save)实现对象实例保存cookie,之后写入文件

cookie = http.cookiejar.LWPCookieJar(filename=filename)#利用HTTPCookieProcessor对象创建cookie处理器

handler = urllib.request.HTTPCookieProcessor(cookiejar=cookie)#通过handler来构建opener

opener =urllib.request.build_opener(handler)#urlopen默认使用之前创建的全局opener

response = urllib.request.urlopen("http://www.baidu.com")#保存cookie到文件,且忽略cookie失效限制

访问网站获得cookie

importurllib.requestimporthttp.cookiejar#创建LWPCookieJar(有load)实例对象

cookie =http.cookiejar.LWPCookieJar()#从文件中读取cookie内容到变量,忽略cookie的使用失效

cookie.load('cookie.txt',ignore_discard=True,ignore_expires=True)#创建请求的request

req = urllib.request("http://www.baidu.com")#利用build_opener,创建一个opener

opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookiejar=cookie))

response= opener.open(req)

从文件中获取cookie并访问

八、捕捉异常

这样做我们可以首先捕获子类的异常,如果子类捕获不到,那么可以捕获父类的异常。

importurllib.request

request= urllib.request.Request('http://www.baidu.com')try:

urllib.request.urlopen(request)excepturllib.request.HTTPError:print("1")excepturllib.request.URLError:print("2")else:print("3")

python网页抓取与按键精灵原理一样吗_Python——爬虫——爬虫的原理与数据抓取...相关推荐

  1. python爬取app播放的视频,Python爬虫工程师必学——App数据抓取实战视频教程

    爬虫分为几大方向,WEB网页数据抓取.APP数据抓取.软件系统数据抓取.本课程主要为同学讲解如何用python实现App数据抓取,课程从开发环境搭建,App爬虫必备利器详解,项目实战,到最后的多App ...

  2. Python爬虫《自动化学报》数据爬取与数据分析

    Python爬虫<自动化学报>数据爬取与数据分析 文章目录 Python爬虫<自动化学报>数据爬取与数据分析 前言 一.代码 二.结果展示 三.爬虫实现 1.准备 2.获取网页 ...

  3. php爬虫:知乎用户数据爬取和分析

    php爬虫:知乎用户数据爬取和分析 2016-04-10    PHP开发者     (点击上方公众号,可快速关注) 作者:崔小拽        原文链接:http://cuihuan.net/art ...

  4. 爬虫实战入门级教学(数据爬取->数据分析->数据存储)

    爬虫实战入门级教学(数据爬取->数据分析->数据存储) 天天刷题好累哦,来一期简单舒适的爬虫学习,小试牛刀(仅供学习交流,不足之处还请指正) 文章讲的比较细比较啰嗦,适合未接触过爬虫的新手 ...

  5. python原理与架构_Python:爬虫原理和网页构造

    入门网络数据爬取,也就是Python爬虫 现实中我们使用浏览器访问网页时,网络是怎么运转的,做了什么呢? 首先,必须了解网络连接基本过程原理,然后,再进入爬虫原理了解就好理解的多了. 1.网络连接原理 ...

  6. Python爬虫实战:手机APP数据抓取分析!谁说不能爬取app数据的?

    大多数手机APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,使用python抓取超级课程表里用户发的话题.主要是练习python爬取app的一些方式和技巧. 1. ...

  7. python:写个简陋的按键精灵

    1.介绍说明 本程序类似于按键精灵,代替用户执行重复性的的按键.输入文本.鼠标点击功能,可设置时间延迟. 示例如图: 使用流程: 1.共有ABCDEF六套方案,用户编辑任意方案 2.点击打开,可打开之 ...

  8. python游戏脚本之调用按键精灵插件模拟输入(二)

    我们准备在python中调用按键精灵的大漠插件来完成模拟驱动的鼠标键盘操作.大漠 综合 插件 (dm.dll)采用vc6.0编写,识别速度超级快! 采用COM接口编写,适用于所有语言调用. 网上相关教 ...

  9. 按键精灵Mid()函数截取字符串:字符串从第几位开始取,取出几个字符

    按键精灵截取字符串(从第几位开始取,取出几个字符) Mid(字符串,开始位置,返回字符数) str = "一2三4五六七89十" TracePrint Mid(str,1,5) / ...

  10. Python爬虫-CSDN博客排行榜数据爬取

    文章目录 前言 网络爬虫 搜索引擎 爬虫应用 谨防违法 爬虫实战 网页分析 编写代码 运行效果 反爬技术 前言 开始接触 CTF 网络安全比赛发现不会写 Python 脚本的话简直寸步难行--故丢弃 ...

最新文章

  1. 如何用Asp判断你的网站的虚拟物理路径
  2. 在.NET Core中使用MEF
  3. Oracle实用技巧
  4. Node.js 入门详解(一)
  5. C++/C--unordered_map常见用法详解
  6. 协议实现objective C 协议的实现
  7. 输出排列 递归、回溯法
  8. Linux 如何重启网络
  9. 力扣-409 最长回文串
  10. Illustrator 教程,如何在 Illustrator 中添加图像?
  11. 计算机培训ppt课件,计算机基础操作培训ppt课件.ppt
  12. 5G网络规划解决方案
  13. The Python Challenge Level-4 Solution
  14. lzma算法_十款性能最佳的压缩算法
  15. 全国省份地区相关常量备忘
  16. 人与计算机的类比-更新
  17. web安全渗透测试的大纲
  18. Python爬虫 下载彼岸图网高清壁纸
  19. 电力载波JST-HPLC-485 系列载波设备(HPLC转485三相透传设备)在物联网通信领域的应用
  20. ROS学习——1创建工作空间

热门文章

  1. HDX RealTime 避免回音
  2. echarts实现svg地图
  3. VC知识库文档中心嵌入开发WinCE 里面不少写的很好的WinCE的文章
  4. 疯狂涨知识!我凭借这份PDF的复习思路,吊打面试官
  5. Android Studio 简单的登陆界面实现(含源码)
  6. matlab 程序篇(1/3)
  7. ASD: Average Surface Distance
  8. Ubuntu 下实现类似Everything的功能
  9. 没有灵魂的微信小程序代码转支付宝小程序代码
  10. java软件工程师自我评价_java开发简历自我评价【java简历自我评价模板】