1.0 Urllib简介


  Urllib是python自带的标准库,无需安装,直接引用即可。urllib通常用于爬虫开发,API(应用程序编程接口)数据获取和测试。在python2和python3中,urllib在不同版本中的语法有明显的改变。

  Python2分为urllib和urllib2,urllib2可以接收一个request对象,并以此来放置一个URL的Headers,但是urllib只接收一个URL,意味着不能伪装用户代理字符串等。urllib模块可以提供进行Urlencode的方法,该方法用于GET查询字符串的生成,urllib2不具有这样的功能。这也是urllib与  urllib2经常在一起使用的原因。

  由于urllib在不用的python版本上有明显的区别,在实际开发中也遇到一些尴尬的情况,其中最为主要的是版本之间的不兼容所带来的问题。

  在python3中,urllib是一个收集几个模块来使用URL的软件包,大致具备以下功能:

  • urllib.request:用于打开和读取URL。

  • urllib.error:包含提出的例外urllib.request。

  • urllib.parse:用于解析URL。

  • urllib.robotparser:用于解析robots.txt文件。

1.1 发送请求


  urllib.request.urlopen 的语法如下

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capth=None, cadefault=False, context=None)

 参数:

  • data:默认值为None,urllib判断参数data是否为None从而区分请求的方式。若参数data为None,则代表请求方式为GET,反之请求方式为POST,发送POST请求,参数data以字典形式存储数据,并将参数data由字典类型转换成字节类型才能完成POST请求。
  • timeout:超时设置,指定阻塞操作(请求时间)的超市(如果未指定,就使用全局默认超时设置)。
  • cafile, capath 和 cadefault:使用参数指定一组HTTPS请求的可信CA证书,cafile应指向包含一组CA证书的单个文件:capath应指向证书文件的目录:cadefault通常使用默认值即可。
  • context:描述各种SSL选项的实例。
    在实际使用中,常用的参数有url,data和timeout。若在爬虫中遇到证书验证,则可将证书验证直接关闭,也可以设置参数指向证书的信息和位置。相比而言,设置证书比较耗时,而且通用性不强。
    当对网站发送请求时,网站会返回相应的响应内容。urlopen对象提供获取网站响应内容的方法函数,分别介绍如下:
  • read() , readline() , readlines() , fileno() , close():对HTTPResponse类型数据操作。
  • info():返回HTTPMessage对象,表示远程服务器返回的头信息
  • getcode():返回HTTP状态码。
  • geturl():返回请求的url。
 
下面例子用于实现urllib模块对网站发送请求并将响应内容写入文本文档,代码如下:
import urllib.request
response=urllib.request.urlopen('http://movie.douban.com',None,2)
html=response.read().decode('utf-8')
f=open('html.txt','w',encoding='utf-8')
f.write(html)
f.close()

1.2复杂的请求


 
 
 

python 3 Urllib 数据抓取的更多相关文章

  1. python&php数据抓取、爬虫分析与中介,有网址案例

    近期在做一个网络爬虫程序.后台使用python不定时去抓取数据.前台使用php进行展示 站点是:http://se.dianfenxiang.com

  2. python 手机App数据抓取实战二抖音用户的抓取

    前言 什么?你问我国庆七天假期干了什么?说出来你可能不信,我爬取了cxk坤坤的抖音粉丝数据,我也不知道我为什么这么无聊. 本文主要记录如何使用appium自动化工具实现抖音App模拟滑动,然后分析数据 ...

  3. python 手机App数据抓取实战一

    前言 当前手机使用成为互联网主流,每天手机App产生大量数据,学习爬虫的人也不能只会爬取网页数据,我们需要学习如何从手机 APP 中获取数据,本文就以豆果美食为例,讲诉爬取手机App的流程 环境准备 ...

  4. python爬虫数据抓取方法汇总

    概要:利用python进行web数据抓取方法和实现. 1.python进行网页数据抓取有两种方式:一种是直接依据url链接来拼接使用get方法得到内容,一种是构建post请求改变对应参数来获得web返 ...

  5. Python爬虫工程师必学——App数据抓取实战 ✌✌

    Python爬虫工程师必学——App数据抓取实战 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 爬虫分为几大方向,WEB网页数据抓取.APP数据抓取.软件系统 ...

  6. 吴裕雄--天生自然python学习笔记:WEB数据抓取与分析

    Web 数据抓取技术具有非常巨大的应用需求及价值, 用 Python 在网页上收集数据,不仅抓取数据的操作简单, 而且其数据分析功能也十分强大. 通过 Python 的时lib 组件中的 urlpar ...

  7. 数据抓取分析(python + mongodb)

    分享点干货!!! Python数据抓取分析 编程模块:requests,lxml,pymongo,time,BeautifulSoup 首先获取所有产品的分类网址: def step(): try: ...

  8. python爬虫(一)_爬虫原理和数据抓取

    本篇将开始介绍Python原理,更多内容请参考:Python学习指南 为什么要做爬虫 著名的革命家.思想家.政治家.战略家.社会改革的主要领导人物马云曾经在2015年提到由IT转到DT,何谓DT,DT ...

  9. Python数据抓取_BeautifulSoup模块的使用

    在数据抓取的过程中,我们往往都需要对数据进行处理 本篇文章我们主要来介绍python的HTML和XML的分析库 BeautifulSoup 的官方文档网站如下 https://www.crummy.c ...

随机推荐

  1. Linux VSFTP服务器

    Linux VSFTP服务器 一.Linux FTP服务器分类: <1>wu-ftp <2>proftp=profession ftp <3>vsftp=very ...

  2. mac svn cornerstone 破解版资源以及使用方法(仅供学习,非商业使用)

    mac svn 可视化客户端,找了好久,不知道是我搜索的有问题还是怎么了,没有特别好用的. 后来发现了一个大神做的破解版的 cornerstone,具体大神的博客我给忘记了,后续找到会贴出地址,以供膜 ...

  3. Kernel Live-patching (by quqi99)

    作者:张华  发表于:2016-02-27 版权声明:能够随意转载.转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) GC ...

  4. java后台修改ZK页面的title

    Clients.evalJavaScript("document.title='"+basicDBObject.getString("systemName")+ ...

  5. go1

    关键字: break default func interface select case defer go map struct chan else goto package switch cons ...

  6. Flask的配置文件 与 session

    配置文件 flask中的配置文件是一个flask.config.Config对象(继承字典) 默认配置为: { 'DEBUG': get_debug_flag(default=False), 是否开启 ...

  7. [USACO17DEC]Push a Box

    https://www.zybuluo.com/ysner/note/1293166 题面 戳我 解析 挺不错的一道图论码量题. 可以借此回顾一下\(noip2013\)华容道. 思路和华容道差不多. ...

  8. emma中文显示乱码问题解决

    在Linux中如果使用mysql的图形客户端,个人感觉Emma还不错.但是emma默认用apt-get 安装的话,emma是不支持中文的,这个需要自己修改一下了配置文件,或者直接修改emma程序源文件 ...

  9. bzoj1085骑士精神(搜索)

    1085: [SCOI2005]骑士精神 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1893  Solved: 1051 Description ...

  10. 洛谷P4887 第十四分块(前体)(二次离线莫队)

    题面 传送门 题解 lxl大毒瘤 我们考虑莫队,在移动端点的时候相当于我们需要快速计算一个区间内和当前数字异或和中\(1\)的个数为\(k\)的数有几个,而这个显然是可以差分的,也就是\([l,r]\ ...