【Python3网络爬虫开发实战】3.1.1-发送请求
【摘要】使用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-发送请求相关推荐
- [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品
在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...
- 【Python3网络爬虫开发实战】3-基本库的使用 1.2-处理异常
前一节我们了解了请求的发送过程,但是在网络不好的情况下,如果出现了异常,该怎么办呢?这时如果不处理这些异常,程序很可能因报错而终止运行,所以异常处理还是十分有必要的. urllib的error模块定义 ...
- 《Python3网络爬虫开发实战(第二版)》上市了!!!!
" 阅读本文大概需要 5 分钟. " 告诉大家一个好消息:我的好朋友崔庆才老师的<Python3网络爬虫开发实战(第二版)>现在正式上市了!!!! 没错,就是这本: 就 ...
- python3网络爬虫代码_《Python3网络爬虫开发实战代码》
<Python3网络爬虫开发实战代码>\appium\.git\COMMIT_EDITMSG, 7 , 2017-08-15 <Python3网络爬虫开发实战代码>\appiu ...
- 【Python3网络爬虫开发实战】4-解析库的使用-3 使用pyquery
在上一节中,我们介绍了Beautiful Soup的用法,它是一个非常强大的网页解析库,你是否觉得它的一些方法用起来有点不适应?有没有觉得它的CSS选择器的功能没有那么强大? 如果你对Web有所涉及, ...
- 【Python3网络爬虫开发实战】 1.7-App爬取相关库的安装
[摘要] 除了Web网页,爬虫也可以抓取App的数据.App中的页面要加载出来,首先需要获取数据,而这些数据一般是通过请求服务器的接口来获取的.由于App没有浏览器这种可以比较直观地看到后台请求的工具 ...
- 《崔庆才Python3网络爬虫开发实战教程》学习笔记(3):抓取猫眼电影榜单TOP100电影,并存入Excel表格
本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,如果你也要这套视频教程的话,关注我公众号[小众技术],关注后回复[PYTHON],无套路免费送你一个学习大 ...
- 《崔庆才Python3网络爬虫开发实战教程》学习笔记(5):将爬虫爬取到的数据存储到TXT,Word,Excel,Json等文件中
本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,此套教程共5章,加起来共有34节课,内容非常详细丰富!如果你也要这套视频教程的话,关注我公众号[小众技术] ...
- 《Python3网络爬虫开发实战(第二版)》内容介绍
这是「进击的Coder」的第 505 篇分享 作者:崔庆才 大家好,本节首先来预告下即将出版的<Python3网络爬虫开发实战(第二版)>的主要内容. 由于我已经把书的总体的内容介绍写在了 ...
- python3网络爬虫开发实战学习笔记(二)------python3 XPATH爬 猫眼电影排名
我最近在看崔庆才老师的<python3 网络爬虫开发实战>觉得挺不错的,上面还有一个 用正则表达式爬取猫眼电影的电影排行榜 我练了一下,感觉不会很难,后来学到了xpath,就想用xpath ...
最新文章
- Python踩坑指南(第二季)
- 收藏 | 精选11篇AI领域论文(附代码、数据集链接)
- maven 更改项目名称
- Ex 5_33 实现一个关于公式长度(其中所有文字总的出现次数)为线性时间的Horn公式可满足性问题_第十次作业...
- Axis,axis2,Xfire以及cxf对比 (转)
- VALID SAME
- stm32 adc过采样_产生ADC误差的外部原因有哪些?
- HDU - 6661 Acesrc and String Theory (后缀数组)
- jQuery.ready in CRM Fiori Opportunity Application
- leetcode64. 最小路径和(dp)
- python堆栈反向输出列表_python - IPython:将Python脚本的输出重定向到文件(如bash) - 堆栈内存溢出...
- 注解@controller的作用_@controller和@Restontroller区别
- 同时面了腾讯三个部门,拿下 offer!
- 如何修改was的java路径_在eclipse中修改tomcat的部署路径操作
- properties文件_spring boot 配置文件yaml和properties
- stm32中如何避免等待_地坪漆施工中如何避免常见的小问题
- 计算机无法安装dx11,Windows10系统DX11正确的安装路径是什么?
- 小程序图片上传formdata boundary + base64
- 云服务器连接手机本地文件在哪里,云服务器如何连接本地文件
- CityEngine教程文档-01 基础教程
热门文章
- android新闻客户端发展趋势,基于Android平台的新闻客户端设计与实现
- java查询和添加客户信息_4.从零点五开始的Java之路(增删改查-客户)
- 用户代码未处理nullreferenceexception_CSAPP 第九章整理 未完成
- 网络操作系统第1章习题
- echo图片延迟加载js
- Struts2中的图片验证码
- 程序员父亲的遗产——编程十诫 转载
- Javascript的继承
- [转载]使用CPU时间戳进行高精度计时
- 在ASP.NET 中实现单用户登录(利用Cache, 将用户信息保存在服务器缓存中)[转]