python爬虫 被重定向_爬虫篇 | 认识Python最最最常用语重要的库Requests
最近整理一个爬虫系列方面的文章,不管大家的基础如何,我从头开始整一个爬虫系列方面的文章,让大家循序渐进的学习爬虫,小白也没有学习障碍.
爬虫篇 | Python爬虫学前普及
基础篇 | Python基础部分
开始正文
Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它.
下面我们来认识这个库
Requests
requests
是Python最为常用的http
请求库,也是极其简单的.使用的时候,首先需要对requests
进行安装,直接使用Pycharm进行一键安装。
1.响应与编码
import requestsurl = 'http://www.baidu.com'r = requests.get(url)print type(r)print r.status_codeprint r.encoding#print r.contentprint r.cookies得到:<class 'requests.models.Response'>
200ISO-8859-1
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
2.Get请求方式
values = {'user':'aaa','id':'123'}url = 'http://www.baidu.com'r = requests.get(url,values)print r.url得到:http://www.baidu.com/?user=aaa&id=123
3.Post请求方式
values = {'user':'aaa','id':'123'}url = 'http://www.baidu.com'r = requests.post(url,values)print r.url#print r.text得到:http://www.baidu.com/
4.请求头headers处理
user_agent = {'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4295.400 QQBrowser/9.7.12661.400'}header = {'User-Agent':user_agent}url = 'http://www.baidu.com/'r = requests.get(url,headers=header)print r.content
注意处理请求的headers很多时候我们服务器会检验请求是否来自于浏览器,所以我们需要在请求的头部伪装成浏览器来请求服务器.一般做请求的时候,最好都要伪装成浏览器,防止出现拒绝访问等错误,这也是一种反爬虫的一种策略
特别说明,以后无论我们做什么请求,一定要带上headers,千万不要偷懒省事,把这里当成一条交通规则来理解,闯红灯不一定会发生危险但不安全,为了省事,我们遵循红灯停绿灯行就够了,做网络爬虫请求也一样,必须把这个headers加上,以防出错.
user_agent = {'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4295.400 QQBrowser/9.7.12661.400'}header = {'User-Agent':user_agent}url = 'http://www.qq.com/'request = urllib2.Request(url,headers=header)response = urllib2.urlopen(request)print response.read().decode('gbk')#这里注意一下需要对读取的网页内容进行转码,先要查看一下网页的chatset是什么格式.
在浏览器上打开www.qq.com
然后按F12,查看User-Agent
:
User-Agent : 有些服务器或 Proxy 会通过该值来判断是否是浏览器发出的请求Content-Type : 在使用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容该怎样解析。application/xml :在 XML RPC,如 RESTful/SOAP 调用时使用application/json :在 JSON RPC 调用时使用application/x-www-form-urlencoded :浏览器提交 Web 表单时使用在使用服务器提供的 RESTful 或 SOAP 服务时, Content-Type 设置错误会导致服务器拒绝服务
5.响应码code与响应头headers处理
url = 'http://www.baidu.com'r = requests.get(url)if r.status_code == requests.codes.ok: print r.status_code print r.headers print r.headers.get('content-type')#推荐用这种get方式获取头部字段else: r.raise_for_status()得到:200{'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Server': 'bfe/1.0.8.18', 'Last-Modified': 'Mon, 23 Jan 2017 13:27:57 GMT', 'Connection': 'Keep-Alive', 'Pragma': 'no-cache', 'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Date': 'Wed, 17 Jan 2018 07:21:21 GMT', 'Content-Type': 'text/html'}text/html
6.cookie处理
url = 'https://www.zhihu.com/'r = requests.get(url)print r.cookiesprint r.cookies.keys()得到:for www.zhihu.com/>]>['aliyungf_tc']
7重定向与历史消息
处理重定向只是需要设置一下allow_redirects
字段即可,将allow_redirectsy
设置为True
则是允许重定向的,设置为False
则禁止重定向的
r = requests.get(url,allow_redirects = True)print r.urlprint r.status_codeprint r.history得到:http://www.baidu.com/200[]
8.超时设置
超时选项是通过参数timeout
来设置的python url = 'http://www.baidu.com' r = requests.get(url,timeout = 2)
9.代理设置
proxis = { 'http':'http://www.baidu.com', 'http':'http://www.qq.com', 'http':'http://www.sohu.com',}url = 'http://www.baidu.com'r = requests.get(url,proxies = proxis)
如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。
【完】如果觉得有料,来个在看,让朋友知道你越来越优秀了
说句题外话,有不少人想加我微信,看我朋友圈的每日分享,我姑且放出来,但名额有限,先来先得。我的朋友圈不止有技术分享,更有我的日常感悟,还有我个人商业思维观点 速速扫码添加!
扫码添加,备注:公号铁粉
推荐阅读
爬虫篇 | Python爬虫学前普及
基础篇 | Python基础部分小结,推荐收藏
讲真,做Python一定不要只会一个方向!
喜欢就在看吧
python爬虫 被重定向_爬虫篇 | 认识Python最最最常用语重要的库Requests相关推荐
- python requests 重定向_认识Python最最最常用语重要的库Requests
Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它.下面我们来认识这个库 Requests requests是Python最为常用的http请求库,也是极其简单的.使用 ...
- 【华为云技术分享】小白篇,认识Python最最最常用语重要的库Requests
Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它. 下面我们来认识这个库 Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它. 下面我 ...
- python 时分秒毫秒_第一篇:Python处理时间日期
个人入门学习笔记的整理,有利于提升自己学习和归纳的能力. 希望对和我一样的入门菜鸟有帮助. 介绍:time.datetime是处理时间日期常用的库,datetime的time的再次封装,使用起来更加的 ...
- python filter函数_第九篇:Python中lambda、filter和map函数
修修心养养性 世无常贵,事无常师,靠人不如靠己. 大纲 函数类型定义及特性 lambda函数定义及使用 filter函数定义及使用 map函数定义及使用 引入函数类型概念 函数类型定义:python中 ...
- python 制作简单网站_新手小白 做python爬虫 爬什么网站比较简单?
本篇文章就新手小白来说,教大家怎么爬虫.现学现卖,看完再自己操作操作就会了~我就是这么学的,分享给想用python爬虫的小伙伴: 放个懒人目录:网络爬虫的行径 URL初步的概念 python与urll ...
- python游走代码_爬虫-案例
前提:爬虫的实际例子 搜索引擎(百度.谷歌.360搜索等). 伯乐在线. 惠惠购物助手. 数据分析与研究(数据冰山知乎专栏). 抢票软件等. 为什么用Python写爬虫程序: PHP:PHP是世界是最 ...
- python爬虫教程资源_爬虫学习资源整理
啊,好久没写东西了,发现收到了好多人的私信,我只要有时间都一一回复了,虽说不一定有用,但权当我们互相交流啊,互相学习呀. 最近一篇<我分析了42万字歌词后,终于搞清楚民谣歌手唱什么了>文章 ...
- 爬虫python 科研有用吗_为什么说用python写爬虫有优势?
之前和做Java的小伙伴聊过对比Java和python,就以这个为开头,跟大家聊聊为什么要学习python,他有哪些优势吧~ 对比Java和python,两者区别: 1.python的requests ...
- python 项目实战视频_腾讯视频 Python 爬虫项目实战
做了一些小项目,用的技术和技巧会比较散比较杂,写一个小品文记录一下,帮助熟悉. 需求:经常在腾讯视频上看电影,在影片库里有一个"豆瓣好评"板块.我一般会在这个条目下面挑电影.但是电 ...
最新文章
- mysql5.5主从同步配置文件_Windows下的 mysql 5.5主从同步配置
- python 监控股价 程序 tk_linux通过python监控股票股价
- hdu 2825 Wireless Password AC自动机+状态DP
- WinForm始终置顶并获取焦点
- 【BZOJ】3922: Karin的弹幕
- Android Binder 学习中几个问题
- 黑马程序员---初学java建议(亲身经历)
- android 电视 竖屏 黑边 -平板,竖视频转换成横视频,要求画面满屏不变形及没有黑边(解决方案)...
- Java多线程篇--threadlocal和线程池
- linux的炒股软件“全胜”
- 44.网络安全渗透测试—[穷举篇7]—[网站会员批量登录穷举]
- mac提示dns错误如何解决
- oracle使用sql关闭trace日志,Linux清理Oracle日志巧用close_trace命令释放误删trace文件...
- cad渐变线怎么画_CAD中的图案渐变功能怎么使用 涨知识了
- 计算机表格大小怎么调整,excel把表格拉大_excel调整单元格大小的方法步骤详解...
- 数商云医药医疗行业B2B平台:如何赋能企业数字化转型,破局传统医药通路难题
- 实战 - Java程序最后的清道夫Runtime.addShutdowHook
- 【管理与控制】干线控制
- next和nextLine的使用
- python维语翻译中文_维文、藏文等特殊语种翻译