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. iOS开发——基础篇——iOS的一像素线

    文/stark_yang(简书作者)原文链接:http://www.jianshu.com/p/b83dca88ef73著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 时常总结以前学过 ...

  2. bzoj3550: [ONTAK2010]Vacation&&bzoj3112: [Zjoi2013]防守战线

    学了下单纯形法解线性规划 看起来好像并不是特别难,第二个code有注释.我还有...*=-....这个不是特别懂 第一个是正常的,第二个是解对偶问题的 #include<cstdio> # ...

  3. HDU 1517:A Multiplication Game

    A Multiplication Game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Ot ...

  4. 美国诚实签经验——IMG全球医疗险,TODO

    那么,诚实签最关键的4个要点 是什么呢? 第一,证明你有一定的经济实力. 可能需要房产.存款等证明,也需要银行信用卡或借记卡半年流水证明(让人信服的每月进帐和消费能力). 这些是为了证明,你可以支付在 ...

  5. 并不对劲的[Noi2008]道路设计

    Time Limit: 20 Sec Memory Limit: 162 MB Submit: 931 Solved: 509 [Submit][Status][Discuss] Descriptio ...

  6. Code First:Fluent API

    DbContext类有一个OnModelCreating方法,可以在这里配置模型,该方法接收一个类型为DbModelBuilder的建造者,本文介绍的为Data Anotation的等价方法,这些代码 ...

  7. bzoj1875 [SDOI2009]HH去散步——矩阵快速幂

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1875 有个限制是不能走回头路,比较麻烦: 所以把矩阵中的元素设成边的经过次数,单向边之间就好 ...

  8. IDEA kafka producer数据输出缓慢 和 kafka consumer 报错的处理

    问题1. IDEA 中Kafa_Producer程序数据输出缓慢 但不报错 问题2. Kafa_Consumer程序报错: 17/11/10 11:31:11 ERROR ReceiverTracke ...

  9. Ruby实例方法和类方法的简写

    创建: 2017/12/12   类方法 Sample.func 实例方法 Sample#func

  10. react hooks 全面转换攻略(一) react本篇之useState,useEffect

    useState 经典案例: import { useState } from 'react'; function Example() { const [count, setCount] = useS ...