Python urllib.request对象案例解析

刚刚接触爬虫,基础的东西得时时回顾才行,这么全面的帖子无论如何也得厚着脸皮转过来啊!

什么是 Urllib 库?

urllib 库 是 Python 内置的 HTTP 请求库。urllib 模块提供的上层接口,使访问 www 和 ftp 上的数据就像访问本地文件一样。

有以下几种模块:

1.urllib.request 请求模块

2. urllib.error 异常处理模块

3. urllib.parse url 解析模块

4. urllib.robotparser robots.txt 解析模块

Urllib 库下的几种模块基本使用如下:

urllib.request

关于 urllib.request: urllib.request 模块提供了最基本的构造 HTTP (或其他协议如 FTP)请求的方法,利用它可以模拟浏览器的一个请求发起过程。利用不同的协议去获取 URL 信息。它的某些接口能够处理基础认证 ( Basic Authenticaton) 、redirections (HTTP 重定向)、 Cookies (浏览器 Cookies)等情况。而这些接口是由 handlers 和 openers 对象提供的。

1.常用的方法有

  •   read()==读取文件内容
  •   geturl()==获取请求url
  •   getheaders()==获取http请求头信息
  •   getcode()==获取状态码
  •   readlines()==获取一行

2.案例

#coding=utf-8
#import urllib.request
#=========response方法使用
#read()==读取文件内容
#geturl()==获取请求url
#getheaders()==获取http请求头信息
#getcode()==获取状态码
#readlines()==获取一行
#url="http://www.baidu.com";
#response = urllib.request.urlopen(url);
#=====案例1
# str = response.read().decode();#这样通过decode转换为utf8
# with open("baidu.html","w",encoding="utf8") as fp:
#   fp.write(str);
#=====案例2通过字节流写=默认通过read读取的是字节流
# with open("bai.html","wb") as fp:
#   fp.write(response.read());
#==使用字节流读取存图片
# image_url='https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3772530225,1800402028&fm=26&gp=0.jpg';
# response = urllib.request.urlopen(image_url);
# with open("mv.jpg",'wb') as fp:
#   fp.write(response.read());
#案例3==使用内置函数读取图片
#image_url='https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3772530225,1800402028&fm=26&gp=0.jpg';
#urllib.request.urlretrieve(image_url,"chun.jpg");

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 解决python 3 urllib 没有 urlencode 属性的问题

    今天在pycharm(我用的python3)练习的时候,发现报了个AttributeError: module 'urllib' has no attribute 'urlencode'的错误.后来发现python2和python3的urllib结构不一样. 下面我用pycharm中python3演示一下: 错误例子: import urllib import urllib.parse wd = {"wd":"传智播客"} print(urllib.urlencod

  • Python3爬虫之urllib携带cookie爬取网页的方法

    如下所示: import urllib.request import urllib.parse url = 'https://weibo.cn/5273088553/info' #正常的方式进行访问 # headers = { # 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36' # } # 携带

  • python爬虫之urllib,伪装,超时设置,异常处理的方法

    Urllib 1. Urllib.request.urlopen().read().decode() 返回一个二进制的对象,对这个对象进行read()操作,可以得到一个包含网页的二进制字符串,然后用decode()解码成html源码 2. urlretrieve() 将一个网页爬取到本地 3. urlclearup() 清除 urlretrieve()所产生的缓存 4. info() 返回一个httpMessage对象,表示远程服务器的头信息 5. getcode() 获取当前网页的状态码 20

  • Python爬虫之urllib基础用法教程

    综述 本系列文档用于对Python爬虫技术进行简单的教程讲解,巩固自己技术知识的同时,万一一不小心又正好对你有用那就更好了. Python 版本是3.7.4 urllib库介绍 它是 Python 内置的HTTP请求库,也就是说我们不需要额外安装即可使用,它包含四个模块(主要对前三个模块进行学习): request : 它是最基本的 HTTP 请求模块,我们可以用它来模拟发送一请求,就像在浏览器里输入网址然后敲击回车一样,只需要给库方法传入 URL 还有额外的参数,就可以模拟实现这个过程了. e

  • python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例

    使用python爬虫库requests,urllib爬取今日头条街拍美图 代码均有注释 import re,json,requests,os from hashlib import md5 from urllib.parse import urlencode from requests.exceptions import RequestException from bs4 import BeautifulSoup from multiprocessing import Pool #请求索引页 d

  • python中urllib.request和requests的使用及区别详解

    urllib.request 我们都知道,urlopen()方法能发起最基本对的请求发起,但仅仅这些在我们的实际应用中一般都是不够的,可能我们需要加入headers之类的参数,那需要用功能更为强大的Request类来构建了 在不需要任何其他参数配置的时候,可直接通过urlopen()方法来发起一个简单的web请求 发起一个简单的请求 import urllib.request url='https://www.douban.com' webPage=urllib.request.urlopen(

  • Python爬虫 urllib2的使用方法详解

    所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地.在Python中有很多库可以用来抓取网页,我们先学习urllib2. urllib2是Python2.x自带的模块(不需要下载,导入即可使用) urllib2官网文档:https://docs.python.org/2/library/urllib2.html urllib2源码 urllib2在python3.x中被改为urllib.request urlopen 我们先来段代码: #-*- coding:utf-8

  • python urllib爬虫模块使用解析

    前言 网络爬虫也称为网络蜘蛛.网络机器人,抓取网络的数据.其实就是用Python程序模仿人点击浏览器并访问网站,而且模仿的越逼真越好.一般爬取数据的目的主要是用来做数据分析,或者公司项目做数据测试,公司业务所需数据. 而数据来源可以来自于公司内部数据,第三方平台购买的数据,还可以通过网络爬虫爬取数据.python在网络爬虫方向上有着成熟的请求.解析模块,以及强大的Scrapy网络爬虫框架. 爬虫分类 1.通用网络爬虫:搜索引擎使用,遵守robots协议(君子协议) robots协议 :网站通过r

  • Python urllib.request对象案例解析

    刚刚接触爬虫,基础的东西得时时回顾才行,这么全面的帖子无论如何也得厚着脸皮转过来啊! 什么是 Urllib 库? urllib 库 是 Python 内置的 HTTP 请求库.urllib 模块提供的上层接口,使访问 www 和 ftp 上的数据就像访问本地文件一样. 有以下几种模块: 1.urllib.request 请求模块 2. urllib.error 异常处理模块 3. urllib.parse url 解析模块 4. urllib.robotparser robots.txt 解析模

  • python urllib.request模块的使用详解

    python的urllib模块提供了一系列操作url的功能,可以让我们通过url打开任意资源.其中比较常用的就是request模块,本篇主要介绍requset模块. urllib子模块 urllib.request 打开或请求url urllib.error 捕获处理请求时产生的异常 urllib.parse 解析url urllib.robotparser 用于解析robots.txt文件 robots.txt是一种存放于网站根目录下文本文件,用来告诉网络爬虫服务器上的那些文件可以被查看.又被

  • python urllib urlopen()对象方法/代理的补充说明

    python urllib urlopen()对象方法/代理的补充说明 urllib 是 python 自带的一个抓取网页信息一个接口,他最主要的方法是 urlopen(),是基于 python 的 open() 方法的.下面是主要说明: urllib.urlopen('网址') 这里传入urlopen()的参数有特别说要求,要遵循一些网络协议,比如http,ftp,也就是说,在网址的开头必须要有http://这样的说明,如:urllib.urlopen('http://www.baidu.co

  • Python urllib request模块发送请求实现过程解析

    1.Request()的参数 import urllib.request request=urllib.request.Request('https://python.org') response=urllib.request.urlopen(request) print(response.read().decode('utf-8')) 通过构造这个数据结构,一方面可以我们可以将请求独立成一个对象,另一方面可以更加丰富和灵活地配置参数. 它的构造方法如下: class.urllib.reques

  • Python OrderedDict的使用案例解析

    这篇文章主要介绍了Python OrderedDict的使用案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集.集合),里面自带了一个子类 OrderedDict,实现了对字典对象中元素的排序.请看下面的实例: import collections print "Regular dictionary" d

  • Python 正则表达式爬虫使用案例解析

    现在拥有了正则表达式这把神兵利器,我们就可以进行对爬取到的全部网页源代码进行筛选了. 下面我们一起尝试一下爬取内涵段子网站: http://www.neihan8.com/article/list_5_1.html 打开之后,不难看出里面一个一个非常有内涵的段子,当你进行翻页的时候,注意url地址的变化: 第一页url: http: //www.neihan8.com/article/list_5_1 .html 第二页url: http: //www.neihan8.com/article/l

  • python集合常见运算案例解析

    本文实例讲述了python集合常见运算.分享给大家供大家参考,具体如下: python生成不重复随机数放在列表中的效率比较 import random import time def RandomNumbers(number, start, end): '''使用列表来生成number个介于start和end之间的不重复随机数''' data = [] n = 0 while True: element = random.randint(start, end) if element not in

  • Python使用pyexecjs代码案例解析

    针对现在大部分的网站都是使用js加密,js加载的,并不能直接抓取出来,这时候就不得不适用一些三方类库来执行js语句 execjs,一个比较好用且容易上手的类库(支持py2,与py3),支持 JS runtime. 官网:https://pypi.org/project/PyExecJS/ # pip install pyexecjs # 一node.js为引擎 # 检测运行环境 import execjs print(execjs.get().name) 最简单的代码案例 使用eval执行js代

  • 从源码解析Python的Flask框架中request对象的用法

    from flask import request Flask 是一个人气非常高的Python Web框架,笔者也拿它写过一些大大小小的项目,Flask 有一个特性我非常的喜欢,就是无论在什么地方,如果你想要获取当前的request对象,只要 简单的: 从当前request获取内容: method: 起始行,元数据 host: 起始行,元数据 path: 起始行,元数据 environ: 其中的 SERVER_PROTOCOL 是起始行,元数据 headers: 头,元数据 data: body

随机推荐