Cookie

Requests通过会话信息来获取cookie信息

Cookie的五要素:

Name   value   domain   path  expires

打印cookie的五大要素import requests

url = "http://www.hao123.com"

s = requests.session()

r = s.get(url)

print (r.cookies)

for cook in r.cookies:

print (cook.name)

print (cook.value)

print (cook.domain)

print (cook.path)

print (cook.expires)

print ("#" * 30)

打印结果:, , , ]>

BAIDUID

C425EDB0B83699C89BDA3D02B25C53BA:FG=1

.hao123.com

/

1548337791

##############################

hz

0

.www.hao123.com

/

None

##############################

ft

1

www.hao123.com

/

1516809599

##############################

v_pg

normal

www.hao123.com

/

None

##############################

你只要获得了登陆页的cookies,你就可对网站进行合理的请求和访问了。

使用已知cookie信息,如何访问网站:import requests

url = 'http://httpbin.org/cookies'

r = requests.get(url, cookies={'key1': 'value1', 'key2': 'value2'})

print(r.text)

结果:{

"cookies": {

"key1": "value1",

"key2": "value2"

}

}

请求到我的IP地址:import requests

url = "http://2017.ip138.com/ic.asp"

s = requests.session()

r = s.get(url=url)

print (r.encoding)

r.encoding = "gbk"

print (r.text)

代理访问:

采集时为避免被封IP,经常会使用代理。

requests也有相应的proxies属性。

西刺代理import requests

proxies = {

"http": "http://139.208.187.142:8118"

}

r1 = requests.get("http://2017.ip138.com/ic.asp", proxies=proxies)

r1.encoding = "gbk"

print (r1.text)

请求结果:

您的IP地址 您的IP是:[139.208.187.142] 来自:吉林省延边朝鲜族自治州 联通

如果代理需要账户和密码,则需这样:proxies = {

"http": "http://user:pass@10.10.1.10:3128/",

}

requests的中文乱码问题:import requests

param = {"key1": "hello", "key2": "world"}

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

r = requests.get(url=url)

print(r.encoding)              #ISO-8859-1默认使用的是这个

r.encoding = "utf-8"

print(r.text)

这样就可以正常显示了

总结:

Requests给你提供的所有接口,在传输数据的时候,都可以以key:value的形式进行传输,这个也是为什么特别使用requests的原因

如果你使用urllib,那么你就没有这么幸运了,很多事情都需要你自己去处理,并不可以直接通过dict的形式进行传输,需要进行装换。

Urllib 模块

在python2和python3上有差异

在python2上,urllib和urllib2各有各的功能,虽然urllib2是urllib的包装、升级版,但是urllib2还是不能完全替代urllib,而在python3中,则全部封装成1个类:urllibpython2:

import urllib

import urllib2python3:

import urllib

Request方法:import urllib.request

urllib.request.Request(url, data=None, headers = {}, method= None)

先看看python2中的urllib2和urllib的区别

(1)urllib2可以接收一个request对象,并以此可以来设置一个url的headers,但是urllib只可以接收一个url,这就意味着你不能通过urllib伪装自己的请求头。

举例:

python2中接收request对象:urllib2.Request

python3中接收request对象:urllib.request.Request()

python3 对这个方法重新进行了封装。

(2)ullib模板可以提供运行urlencode的方法,该方法用于GET查询字符串的生成,urllib2不具备这样的功能,而且urllib.quote等一系列qoute和unquote功能没有被加入urllib2中,因此有时也需要urllib的辅助。这就是为什么有时候urllib和urllib2一起使用的原因。(quote 是用来给url转码的)

举例:

python2中使用urllib.encodedata = {"key1":"hello", "key2":"world"}

d = urllib.encode(data)

作用:等同于域名后面的参数 www.**.com?key1=hello&key2=world

python3中使用parse.urlencodefrom urllib import parse

import urllib.request

url = "www.hao123.com"

data = {"key1":"hello", "key2":"world"}

ndata = parse.urlencode(data) #将数据转化成一个字典形式

print (ndata)

#打印结果:key1=hello&key2=world

#继续往下:

req = urllib.request.Request(url=url, data=ndata.encode("utf-8"))

res = urllib.request.urlopen(req)

print (res.read().decode("utf-8"))

【注意】:urlencode()主要作用就是将url附上要提交的数据。Post的数据必须是bytes或者iterable of bytes,不能是str,因此需要进行encode()编码

方法解释:urllib.request.urlopen(url, data=None, timeout=None)

url    需要打开的网站

data    psot提交的数据

Timeout       网站访问的超时时间

但是没法伪装我们的头信息from urllib import request

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

html = request.urlopen(req).read()

如果不自己添加信息,只需要加头信息,即添加一个字典形式的头信息即可访问,如下:... ...

headers = {"User-Agent":

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36"}

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

res = urllib.request.urlopen(req)

print (res.read().decode("utf-8"))

分享链接:时下流行的浏览器User-Agent大全

同理,python2同样可以实现添加头信息,请求页面:import urllib

import urllib2

headers = {"User-Agent":

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36"}

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

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

res = urllib2.urlopen(req)

print (res.read())

python2 爬虫value_53. Python 爬虫(2)相关推荐

  1. python爬虫百科-python爬虫百科

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 专业点来说就是应用多台机器同时实现爬虫任务,这多台机器上的爬虫,就是称作分布式爬虫 ...

  2. python爬虫工程师-Python爬虫工程师

    课程概况 3个月精通Python爬虫工程师核心技能. 从入门到进阶,知识点全覆盖,配套实战练习. 包含课程 入门篇 Python编程环境配置及基础语法 掌握Python基础语法及虫技能,利用Pytho ...

  3. python爬虫案例-Python爬虫案例集合

    原标题:Python爬虫案例集合 urllib2 urllib2是Python中用来抓取网页的库,urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用) 在python2.x里 ...

  4. python爬虫吧-Python爬虫案例集合

    urllib2 urllib2是Python中用来抓取网页的库,urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用) 在python2.x里面有urllib和urllib2; ...

  5. python爬虫实例-Python爬虫案例集合

    urllib2 urllib2是Python中用来抓取网页的库,urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用) 在python2.x里面有urllib和urllib2; ...

  6. 超级简单的Python爬虫教程,python爬虫菜鸟教程官网

    毫无基础的人如何入门 Python ? Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编 ...

  7. 为什么要学Python爬虫?Python爬虫找工作需要做哪些准备?

    Python的火爆,同时也带动了Python爬虫岗位的的极大需求.可能有些人想问了,学Python爬虫真的好找工作吗?要学到什么程度?根据各大招聘网站的数据反馈,目前市场上对Python爬虫工程师的需 ...

  8. python爬虫图片-python爬虫(爬取图片)

    python爬虫爬图片 第一步 载入爬虫模块 from requests_html import HTMLSession #载入爬虫模块 第二步 创建session对象 from requests_h ...

  9. python 爬虫实例-Python 爬虫:Scrapy 实例(二)

    原标题:Python 爬虫:Scrapy 实例(二) 稍微增加点难度,做个所需项目多一点的,并将的结果以多种形式保存起来.我们就从网络天气预报开始. 首先要做的是确定网络天气数据的来源.打开百度,搜索 ...

最新文章

  1. 关于 linux io_uring 性能测试 及其 实现原理的一些探索
  2. 【Python】青少年蓝桥杯_每日一题_7.19_电梯用量
  3. SDN学习之旅-RYU笔记(1)
  4. redis 计数器 java_Redis 的 8 大应用场景!
  5. ip地址转换pta题目_PTA「实验2-3-5 输出华氏-摄氏温度转换表」
  6. 未将更新安装在此计算机上,Win7用户注意!7月前没安装这个更新包,将不能再使用更新功能!...
  7. 花书+吴恩达深度学习(十九)构建模型策略(训练模型顺序、偏差方差、数据集划分、数据不匹配)
  8. JavaScript数据结构——栈(Stack)
  9. 三菱fx3u通讯手册_三菱FX3U与变频器通讯程序如何编写
  10. 比尔·盖茨:美国优先的世界观使我担心
  11. java建立英文停用词表_HanLP-停用词表的使用示例
  12. 《痞子衡嵌入式半月刊》 第 63 期
  13. 人机交互软件又添新成员,CarLink认证流程详解
  14. Windows下Solr的安装与配置,附DIH全量导入MySQL数据、IK分词器配置详解——不用集成Tomcat
  15. ElementUI tree超出显示省略号
  16. 【单片机】唯一设备ID UID固件加密
  17. 语言的翻译叫什么_翻译翻译,什么叫惊喜!
  18. MMORPG游戏中AOI视野算法解析
  19. 计算机网络时有时无,电脑WiFi时有时无不稳定的解决方法 | 我爱分享网
  20. Django实现短信注册功能

热门文章

  1. python练习题及答案-听说你python基础入门了?100个经典练习题送给你(附完整答案)...
  2. python对于设计师有什么用-如果你有设计师朋友,请对他好一些...
  3. python入门教程(非常详细)-菜鸟学Python入门教程大盘点|7个多月的心血总结
  4. 学python需要什么基础-学Python需要什么基础知识?零基础可以学Python吗?
  5. python基础代码大全-Python基础汇总
  6. python基础语法手册-python语法大全,python语法手册
  7. 嵌入式语音识别系统是什么
  8. 科大讯飞语音识别 支持多语音欢迎指点
  9. python 模拟浏览器selenium_浅谈python爬虫使用Selenium模拟浏览器行为
  10. Vue实现按钮和文本框的切换