一、ProxyHandler处理(代理服务器)

1.使用代理IP,是爬虫的常用手段

2.获取代理服务器的地址:

www.xicidaili.com

www.goubanjia.com

3.代理用来隐藏真实访问中,代理不允许频繁访问某一个固定网站,所以代理一定要很多很多。

4.基本使用步骤:

(1)设置代理地址

(2)创建PoxyHandler

(3)创建Opener

(4)安装Opener


"""

使用代理访问百度首页

​

"""

from urllib import request,error

​

if __name__ =="__main__":

    url = "https://www.baidu.com"

    #设置代理地址

    proxy = {"http":"39.106.114.143:80"}

    #创建ProxyHandler

    proxy_handler = request.ProxyHandler(proxy)

    #创建Opener

    opener = request.build_opener(proxy_handler)

    #安装Opener

    request.install_opener(opener)

​

    #现在如果访问url。那么就会使用代理服务器

    try:

        rsp = request.urlopen(url)

        html = rsp.read().decode()

        print(html)

    except error.URLError as e:

        print(e)

    except Exception as e:

        print(e)

二、cookie

1..由于http协议的无记忆性,人们为了弥补这个缺憾,所采用的一个补充协议。

2.cookie是发放给用户(即http浏览器)的一段信息,session是保存在服务器上的对应的另一半的信息,用来记录用户信息。

3.cookie和session的区别

(1)存放的位置不相同;(2)cookie不安全;(3)session会保存在服务器上一定时间,会过期;(3)单个cookie保存数据不超过4k,很多浏览器限制一个站点最多保存20个。

4.session存放位置

(1)存在服务器上;(2)一般情况下,session是放在内存中或者数据库中。

5.案例:

没有cookie登录则反馈网页为未登录状态

使用cookie登录

from urllib import request

​

if __name__ == "__main__":

    url = "https://leetcode-cn.com/"

    headers = {

        "cookie":"_ga=GA1.2.606835635.1580743041; gr_user_id=d15dfef5-20a7-44a4-8181-f088825ee052; grwng_uid=1d99b83c-8186-4ffa-905e-c912960d9049; __auc=952db4f31700ba0a3811855dc67; csrftoken=zW1tIWrqqDGQ2gDeEAiRM3Pu41f3qetXjvNP5jxuDpekTTyHj262rmfnO2PtXiCI; LEETCODE_SESSION=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJfYXV0aF91c2VyX2lkIjoiOTUxOTE1IiwiX2F1dGhfdXNlcl9iYWNrZW5kIjoiYXV0aGVudGljYXRpb24uYXV0aF9iYWNrZW5kcy5QaG9uZUF1dGhlbnRpY2F0aW9uQmFja2VuZCIsIl9hdXRoX3VzZXJfaGFzaCI6ImQ0ODczNmFiODAwZjk0ZTU3ZjAwMmQ4YjU1YjRmNWZmMDViMDllOTIiLCJpZCI6OTUxOTE1LCJlbWFpbCI6IiIsInVzZXJuYW1lIjoicnVpZ2VnZTY2IiwidXNlcl9zbHVnIjoicnVpZ2VnZTY2IiwiYXZhdGFyIjoiaHR0cHM6Ly9hc3NldHMubGVldGNvZGUtY24uY29tL2FsaXl1bi1sYy11cGxvYWQvZGVmYXVsdF9hdmF0YXIucG5nIiwicGhvbmVfdmVyaWZpZWQiOnRydWUsInRpbWVzdGFtcCI6IjIwMjAtMDItMDMgMTU6MTg6MDYuNjYw160b58f59beeae32; a2873925c34ecbd2_gr_session_id=e9ba4267-3dbc-47c1-aa02-c6e92e8eb4a8; a2873925c34ecbd2_gr_last_sent_sid_with_cs1=e9ba4267-3dbc-47c1-aa02-c6e92e8eb4a8; a2873925c34ecbd2_gr_session_id_e9ba4267-3dbc-47c1-aa02-c6e92e8eb4a8=true; _gid=GA1.2.1242221115.1580917808; Hm_lpvt_fa218a3ff7179639febdb15e372f411c=1580917870; a2873925c34ecbd2_gr_cs1=ruigege66; _gat_gtag_UA_131851415_1=1"

    }

    req = request.Request(url,headers=headers)

    rsp = request.urlopen(req)

    html = rsp.read().decode()

    with open("rsp.html","w") as f:

        f.write(html.encode("GBK","ignore").decode("GBK"))

三、源码

Reptitle5_Proxy.py

Reptitle6_Cookie.py

https://github.com/ruigege66/PythonReptile/blob/master/Reptitle5_Proxy.py

https://github.com/ruigege66/PythonReptile/blob/master/Reptitle6_Cookie.py

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Python爬虫连载5-Proxy、Cookie解析的更多相关文章

  1. python爬虫 - Urllib库及cookie的使用

    http://blog.csdn.net/pipisorry/article/details/47905781 lz提示一点,python3中urllib包括了py2中的urllib+urllib2. ...

  2. Python爬虫入门六之Cookie的使用

    大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在 ...

  3. 小白学 Python 爬虫(21):解析库 Beautiful Soup(上)

    小白学 Python 爬虫(21):解析库 Beautiful Soup(上) 人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前 ...

  4. 小白学 Python 爬虫(22):解析库 Beautiful Soup(下)

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  5. 小白学 Python 爬虫(23):解析库 pyquery 入门

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  6. Python爬虫教程-15-读取cookie(人人网)和SSL(12306官网)

    Python爬虫教程-15-爬虫读取cookie(人人网)和SSL(12306官网) 上一篇写道关于存储cookie文件,本篇介绍怎样读取cookie文件 cookie的读取 案例v16ssl文件:h ...

  7. Python爬虫连载1-urllib.request和chardet包使用方式

    一.参考资料 1.<Python网络数据采集>图灵工业出版社 2.<精通Python爬虫框架Scrapy>人民邮电出版社 3.[Scrapy官方教程](http://scrap ...

  8. Python爬虫连载10-Requests模块、Proxy代理

    一.Request模块 1.HTTP for Humans,更简洁更友好 2.继承了urllib所有的特征 3.底层使用的是urllib3 4.​开源地址:https://github.com/req ...

  9. Python爬虫连载3-Post解析、Request类

    一.访问网络的两种方法 1.get:利用参数给服务器传递信息:参数为dict,然后parse解码 2.post:一般向服务器传递参数使用:post是把信息自动加密处理:如果想要使用post信息,需要使 ...

随机推荐

  1. 【代码学习】PYTHON 文件I/O

    一.文件的打开和关闭 open(文件名,访问模式) cloese() 模式 描述 r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. rb 以二进制格式打开一个文件用于只读.文件指针 ...

  2. webpack搭建vue项目

    链接:https://blog.csdn.net/qq_42181069/article/details/81137180 __dirname : 文件的绝对路径

  3. SpringBoot与Mybatis整合(包含generate自动生成代码工具,数据库表一对一,一对多,关联关系中间表的查询)

    链接:https://blog.csdn.net/YonJarLuo/article/details/81187239 自动生成工具只是生成很单纯的表,复杂的一对多,多对多的情况则是在建表的时候就建立 ...

  4. Python结合Pywinauto 进行 Windows UI 自动化

    转:Python结合Pywinauto 进行 Windows UI 自动化 https://blog.csdn.net/z_johnny/article/details/52778064 说明:Pyw ...

  5. ubuntu循环登录

    ubuntu12.04管理员账户登录不了桌面,只能客人会话登录 登录管理员账户时,输入密码后,一直在登录界面循环 费了好大劲啊,一上午的时间,终于搞定了,哈哈哈 ctrl+alt+f1 ,切换到tty ...

  6. MSE初始化和基本操作

    MSE默认的登录账户密码可能是:login/password (admin/admin). l 初始化配置完成后,下次使用root登录时,仅显示Linux shell提示符,而不是安装脚本. 您可以随 ...

  7. POJ1797 Heavy Transportation (堆优化的Dijkstra变形)

    Background Hugo Heavy is happy. After the breakdown of the Cargolifter project he can now expand bus ...

  8. POJ3662 Telephone Lines (dijkstra+二分)

    Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone company is uncoop ...

  9. 基于springboot通过注解AOP动态切换druid多数据源--mybatis

    控制于接口之上: 开始:demo地址  在lsr-core-base中 自定义注解: /** * @Description: 数据源切换注解 * @Package: lsr-microservice ...

  10. dp求解各种子串子序列

    目录 概念 最长上升子序列 最长连续子串 最长公共子序列 最长公共上升子序列 注:dp可能并不是求解该这些问题的最优算法,这里只是做一个dp 算法的简介. 概念 定义:假设现有一个 string = ...