【摘要】使用urllib的request模块,我们可以方便地实现请求的发送并得到响应,本节就来看下它的具体用法。

1. urlopen()

urllib.request模块提供了最基本的构造HTTP请求的方法,利用它可以模拟浏览器的一个请求发起过程,同时它还带有处理授权验证(authenticaton)、重定向(redirection)、浏览器Cookies以及其他内容。

下面我们来看一下它的强大之处。这里以Python官网为例,我们来把这个网页抓下来:

import urllib.request
response = urllib.request.urlopen('https://www.python.org')
print(response.read().decode('utf-8'))

运行结果如图3-1所示。

图3-1 运行结果

这里我们只用了两行代码,便完成了Python官网的抓取,输出了网页的源代码。得到源代码之后呢?我们想要的链接、图片地址、文本信息不就都可以提取出来了吗?

接下来,看看它返回的到底是什么。利用type()方法输出响应的类型:

import urllib.requestresponse = urllib.request.urlopen('https://www.python.org')
print(type(response))

输出结果如下:

<class 'http.client.HTTPResponse'>

可以发现,它是一个HTTPResposne类型的对象。它主要包含read()、readinto()、getheader(name)、getheaders()、fileno()等方法,以及msg、version、status、reason、debuglevel、closed等属性。

得到这个对象之后,我们把它赋值为response变量,然后就可以调用这些方法和属性,得到返回结果的一系列信息了。

例如,调用read()方法可以得到返回的网页内容,调用status属性可以得到返回结果的状态码,如200代表请求成功,404代表网页未找到等。

下面再通过一个实例来看看:

import urllib.requestresponse = urllib.request.urlopen('https://www.python.org')
print(response.status)
print(response.getheaders())
print(response.getheader('Server'))

运行结果如下:

200
[('Server', 'n

来源:华为云社区  作者:崔庆才丨静觅

【Python3网络爬虫开发实战】3.1.1-发送请求相关推荐

  1. [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品

    在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...

  2. 【Python3网络爬虫开发实战】3-基本库的使用 1.2-处理异常

    前一节我们了解了请求的发送过程,但是在网络不好的情况下,如果出现了异常,该怎么办呢?这时如果不处理这些异常,程序很可能因报错而终止运行,所以异常处理还是十分有必要的. urllib的error模块定义 ...

  3. 《Python3网络爬虫开发实战(第二版)》上市了!!!!

    " 阅读本文大概需要 5 分钟. " 告诉大家一个好消息:我的好朋友崔庆才老师的<Python3网络爬虫开发实战(第二版)>现在正式上市了!!!! 没错,就是这本: 就 ...

  4. python3网络爬虫代码_《Python3网络爬虫开发实战代码》

    <Python3网络爬虫开发实战代码>\appium\.git\COMMIT_EDITMSG, 7 , 2017-08-15 <Python3网络爬虫开发实战代码>\appiu ...

  5. 【Python3网络爬虫开发实战】4-解析库的使用-3 使用pyquery

    在上一节中,我们介绍了Beautiful Soup的用法,它是一个非常强大的网页解析库,你是否觉得它的一些方法用起来有点不适应?有没有觉得它的CSS选择器的功能没有那么强大? 如果你对Web有所涉及, ...

  6. 【Python3网络爬虫开发实战】 1.7-App爬取相关库的安装

    [摘要] 除了Web网页,爬虫也可以抓取App的数据.App中的页面要加载出来,首先需要获取数据,而这些数据一般是通过请求服务器的接口来获取的.由于App没有浏览器这种可以比较直观地看到后台请求的工具 ...

  7. 《崔庆才Python3网络爬虫开发实战教程》学习笔记(3):抓取猫眼电影榜单TOP100电影,并存入Excel表格

    本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,如果你也要这套视频教程的话,关注我公众号[小众技术],关注后回复[PYTHON],无套路免费送你一个学习大 ...

  8. 《崔庆才Python3网络爬虫开发实战教程》学习笔记(5):将爬虫爬取到的数据存储到TXT,Word,Excel,Json等文件中

    本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,此套教程共5章,加起来共有34节课,内容非常详细丰富!如果你也要这套视频教程的话,关注我公众号[小众技术] ...

  9. 《Python3网络爬虫开发实战(第二版)》内容介绍

    这是「进击的Coder」的第 505 篇分享 作者:崔庆才 大家好,本节首先来预告下即将出版的<Python3网络爬虫开发实战(第二版)>的主要内容. 由于我已经把书的总体的内容介绍写在了 ...

  10. python3网络爬虫开发实战学习笔记(二)------python3 XPATH爬 猫眼电影排名

    我最近在看崔庆才老师的<python3 网络爬虫开发实战>觉得挺不错的,上面还有一个 用正则表达式爬取猫眼电影的电影排行榜 我练了一下,感觉不会很难,后来学到了xpath,就想用xpath ...

最新文章

  1. Python踩坑指南(第二季)
  2. 收藏 | 精选11篇AI领域论文(附代码、数据集链接)
  3. maven 更改项目名称
  4. Ex 5_33 实现一个关于公式长度(其中所有文字总的出现次数)为线性时间的Horn公式可满足性问题_第十次作业...
  5. Axis,axis2,Xfire以及cxf对比 (转)
  6. VALID SAME
  7. stm32 adc过采样_产生ADC误差的外部原因有哪些?
  8. HDU - 6661 Acesrc and String Theory (后缀数组)
  9. jQuery.ready in CRM Fiori Opportunity Application
  10. leetcode64. 最小路径和(dp)
  11. python堆栈反向输出列表_python - IPython:将Python脚本的输出重定向到文件(如bash) - 堆栈内存溢出...
  12. 注解@controller的作用_@controller和@Restontroller区别
  13. 同时面了腾讯三个部门,拿下 offer!
  14. 如何修改was的java路径_在eclipse中修改tomcat的部署路径操作
  15. properties文件_spring boot 配置文件yaml和properties
  16. stm32中如何避免等待_地坪漆施工中如何避免常见的小问题
  17. 计算机无法安装dx11,Windows10系统DX11正确的安装路径是什么?
  18. 小程序图片上传formdata boundary + base64
  19. 云服务器连接手机本地文件在哪里,云服务器如何连接本地文件
  20. CityEngine教程文档-01 基础教程

热门文章

  1. android新闻客户端发展趋势,基于Android平台的新闻客户端设计与实现
  2. java查询和添加客户信息_4.从零点五开始的Java之路(增删改查-客户)
  3. 用户代码未处理nullreferenceexception_CSAPP 第九章整理 未完成
  4. 网络操作系统第1章习题
  5. echo图片延迟加载js
  6. Struts2中的图片验证码
  7. 程序员父亲的遗产——编程十诫 转载
  8. Javascript的继承
  9. [转载]使用CPU时间戳进行高精度计时
  10. 在ASP.NET 中实现单用户登录(利用Cache, 将用户信息保存在服务器缓存中)[转]