最近整理一个爬虫系列方面的文章,不管大家的基础如何,我从头开始整一个爬虫系列方面的文章,让大家循序渐进的学习爬虫,小白也没有学习障碍.

爬虫篇 | 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相关推荐

  1. python requests 重定向_认识Python最最最常用语重要的库Requests

    Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它.下面我们来认识这个库 Requests requests是Python最为常用的http请求库,也是极其简单的.使用 ...

  2. 【华为云技术分享】小白篇,认识Python最最最常用语重要的库Requests

    Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它. 下面我们来认识这个库 Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它. 下面我 ...

  3. python 时分秒毫秒_第一篇:Python处理时间日期

    个人入门学习笔记的整理,有利于提升自己学习和归纳的能力. 希望对和我一样的入门菜鸟有帮助. 介绍:time.datetime是处理时间日期常用的库,datetime的time的再次封装,使用起来更加的 ...

  4. python filter函数_第九篇:Python中lambda、filter和map函数

    修修心养养性 世无常贵,事无常师,靠人不如靠己. 大纲 函数类型定义及特性 lambda函数定义及使用 filter函数定义及使用 map函数定义及使用 引入函数类型概念 函数类型定义:python中 ...

  5. python 制作简单网站_新手小白 做python爬虫 爬什么网站比较简单?

    本篇文章就新手小白来说,教大家怎么爬虫.现学现卖,看完再自己操作操作就会了~我就是这么学的,分享给想用python爬虫的小伙伴: 放个懒人目录:网络爬虫的行径 URL初步的概念 python与urll ...

  6. python游走代码_爬虫-案例

    前提:爬虫的实际例子 搜索引擎(百度.谷歌.360搜索等). 伯乐在线. 惠惠购物助手. 数据分析与研究(数据冰山知乎专栏). 抢票软件等. 为什么用Python写爬虫程序: PHP:PHP是世界是最 ...

  7. python爬虫教程资源_爬虫学习资源整理

    啊,好久没写东西了,发现收到了好多人的私信,我只要有时间都一一回复了,虽说不一定有用,但权当我们互相交流啊,互相学习呀. 最近一篇<我分析了42万字歌词后,终于搞清楚民谣歌手唱什么了>文章 ...

  8. 爬虫python 科研有用吗_为什么说用python写爬虫有优势?

    之前和做Java的小伙伴聊过对比Java和python,就以这个为开头,跟大家聊聊为什么要学习python,他有哪些优势吧~ 对比Java和python,两者区别: 1.python的requests ...

  9. python 项目实战视频_腾讯视频 Python 爬虫项目实战

    做了一些小项目,用的技术和技巧会比较散比较杂,写一个小品文记录一下,帮助熟悉. 需求:经常在腾讯视频上看电影,在影片库里有一个"豆瓣好评"板块.我一般会在这个条目下面挑电影.但是电 ...

最新文章

  1. mysql5.5主从同步配置文件_Windows下的 mysql 5.5主从同步配置
  2. python 监控股价 程序 tk_linux通过python监控股票股价
  3. hdu 2825 Wireless Password AC自动机+状态DP
  4. WinForm始终置顶并获取焦点
  5. 【BZOJ】3922: Karin的弹幕
  6. Android Binder 学习中几个问题
  7. 黑马程序员---初学java建议(亲身经历)
  8. android 电视 竖屏 黑边 -平板,竖视频转换成横视频,要求画面满屏不变形及没有黑边(解决方案)...
  9. Java多线程篇--threadlocal和线程池
  10. linux的炒股软件“全胜”
  11. 44.网络安全渗透测试—[穷举篇7]—[网站会员批量登录穷举]
  12. mac提示dns错误如何解决
  13. oracle使用sql关闭trace日志,Linux清理Oracle日志巧用close_trace命令释放误删trace文件...
  14. cad渐变线怎么画_CAD中的图案渐变功能怎么使用 涨知识了
  15. 计算机表格大小怎么调整,excel把表格拉大_excel调整单元格大小的方法步骤详解...
  16. 数商云医药医疗行业B2B平台:如何赋能企业数字化转型,破局传统医药通路难题
  17. 实战 - Java程序最后的清道夫Runtime.addShutdowHook
  18. 【管理与控制】干线控制
  19. next和nextLine的使用
  20. python维语翻译中文_维文、藏文等特殊语种翻译

热门文章

  1. Golang中Goroutine与线程
  2. Redis集群之主从复制
  3. elasticsearch基本操作 --- 使用java操作elasticsearch
  4. MySQL中GTID的几个限制和解决方案(r13笔记第21天)
  5. pythoning——11、正则匹配
  6. windows不能在本地启动OracleDBConsole
  7. 对“车库咖啡的网络现状改造”的一点个人看法
  8. C#学习笔记---数据类型
  9. 大型企业网络配置系列课程详解(八) --VoIP的配置与相关概念的理解
  10. 过滤器链模式PK匿名方法实现,哪个更优雅?