通过python 的 urllib2 模块,可以轻易的去模拟用户访问网页的行为。 这里将自己的学习过程简单的记录下来。...但不同于urllib 的是,urllib2 中的urlopen函数的第一个参数url 可以是一个Request 实例。...在上一个例子中进行稍微的修改 import urllib import urllib2 values = {} values['username'] = "God" values['password...response = urllib2.urlopen('http://www.baidu.com') 3、结合cookielib 处理 cookie 信息 首先要简单的了解一下cookielib 这个模块...最好仔细研究一下,这里我们只研究 opener 相关,暂时略过cookielib 模块。
urllib2 的异常错误处理 在我们用urlopen或opener.open方法发出一个请求时,如果urlopen或opener.open不能处理这个response,就产生错误。...下面的例子里我们访问了一个不存在的域名: # urllib2_urlerror.py import urllib2 requset = urllib2.Request('http://www.ajkfhafwjqh.com...注意,urllib2可以为我们处理重定向的页面(也就是3开头的响应码),100-299范围的号码表示成功,所以我们只能看到400-599的错误号码。...# urllib2_httperror.py import urllib2 requset = urllib2.Request('http://blog.baidu.com/itcast') try...改进版 由于HTTPError的父类是URLError,所以父类的异常应当写到子类异常的后面,所以上述的代码可以这么改写: # urllib2_botherror.py import urllib2
Handler处理器 和 自定义Opener opener是 urllib2.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的opener(也就是模块帮我们构建好的...urllib2中通过ProxyHandler来设置使用代理服务器,下面代码说明如何使用自定义opener来使用代理: #urllib2_proxy1.py import urllib2 # 构建了两个代理...cookielib库 和 HTTPCookieProcessor处理器 在Python处理Cookie,一般是通过cookielib模块和 urllib2模块的HTTPCookieProcessor处理器类一起使用...cookielib模块:主要作用是提供用于存储cookie的对象 HTTPCookieProcessor处理器:主要作用是处理这些cookie对象,并构建handler对象。...cookielib 库 该模块主要的对象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。
网页下载器:将互联网上URL对应的网页下载到本地的工具,是爬虫的核心组件 urllib2下载网页的三种方法 对应实例代码如下: #coding:utf8 import urllib2...# 获取读取到的内容的长度 print len(response1.read() ) 第一种方法 –> 直接请求 200 4305 #coding:utf8 import urllib2...response2.getcode() print len(response2.read()) 第二种方法: 200 4305 #coding:utf8 import urllib import urllib2...cookielib.CookieJar() #创建1个opener opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) # 给urllib2...安装opener urllib2.install_opener(opener) # 使用带有cookie的urllib2访问网页 response3 = urllib2.urlopen(url) print
程序清单:demo01.py # -*- coding:utf-8 -*- # 添加指定编码的注释,表示当前源代码支持中文操作 import urllib2 # 引入需要的模块 response =...自定义Opener开锁人 在前面的所有操作案例中,都是直接使用urllib2模块的操作函数进行的处理,处理的方式一般都集中在HTTP或者HTTPS请求,那么urllib2.urlopen()底层具体做了什么样的操作呢...鉴于此,我们也可以自定义openr的实现过程: # -*- coding:utf-8 -*- import urllib2 # 引入需要的模块 handler = urllib2.HTTPSHandler...模块中的代理操作对象ProxyHandler,如果是常规的HTTPHandler/HTTPSHandler是不能满足我们的需要的 # -*- coding:utf-8 -*- # 引入需要的模块 import...数据 # -*- coding:utf-8 -*- # 引入需要的模块 import urllib2 import cookielib # 创建一个基于cookie的核心操作对象 cookie =
主要使用python自带的urllib2进行爬虫实验。 写在前面的蠢事: 本来新建了一个urllib2.py便于好认识这是urllib2的实验,结果始终编译不通过,错误错误。...正则表达式与re Python 通过 re 模块提供对正则表达式的支持。使用 re 的一般步骤是: Step1:先将正则表达式的字符串形式编译为Pattern实例。...1241251168@qq.com) # @Link : http://www.xiaosablog.cf/ # @Version : $Id$ #一个简单的re实例,匹配字符串中的hello字符串 #导入re模块...糗事百科的网络爬虫 import urllib2 import urllib import re import thread import time #--
urllib2 是Python自带的标准模块, 用来发送HTTP Request的。 ...类似于 .NET中的, HttpWebRequest类 urllib2 的优点 Python urllib2 发出的HTTP Request, 能自动被Fiddler截获, 方便了调试。...Python 可以自动处理Cookie urllib2 的缺点 Python urllib2 发出的http Request, 中的header 会被修改成“首字母大写”, 比如你的代码里写的header...Content-Type=application/x-www-form-urlencoded 实例一, Get方法, 并且自定义header # -* - coding: UTF-8 -* - import urllib2...() print response.geturl() print response.read() 实例三: Cookie 的处理 # -* - coding: UTF-8 -* - import urllib2
这个错误通常是因为Python 3中对urllib库进行了重构,将urllib模块分为了urllib.request和urllib.error两个模块,而urllib2...所以在Python 3中使用urllib2会导致找不到模块的错误。...urllib.request包含了urllib2的大部分功能。 首先,您需要将urllib2导入的代码改为导入urllib.request模块。...您可以使用six.moves模块中的别名来替代urllib2。...下面详细介绍urllib2模块的一些重要功能和用法:1. 发送GET请求使用urllib2模块发送GET请求,可以通过urlopen函数来实现。
urllib2是在Python2标准库中的,无需安装即可使用,在Python3中不能使用urllib2,在Python3中urllib2被改为了urllib.request,所以本文中的代码在Python3...中运行时,把urllib2替换成urllib.request,得到的结果是一样的。...一、使用urllib2获取数据 # coding=utf-8 import urllib2 response = urllib2.urlopen("http://www.baidu.com") print...在获取到响应结果后,可以通过json模块来解析出我们想要的数据。...使用urllib2发送请求时,我们并不需要声明使用的是GET请求还是POST请求,当我们给Request对象传入了data参数,urllib2就会自动以POST方式发送请求。
这段时间想玩玩python网页信息爬取,在使用urllib2这个库的时候导入失败,提示信息为: im@58user:~/PythonProjects/IOTest$ python Python 2.7.6...4.8.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import urllib2...io.py", line 3, in os.remove(f) NameError: name 'f' is not defined 当然我仅仅时想在命令行测试一下是否能导入urllib2
然而,使用 urllib2 库时,有效地处理 Cookie 问题成为一项具有挑战性的任务。2. 解决方案2.1....实现方案为了实现上述设置,我们需要对 urllib2 的 CookiesMiddleware 代码进行修改。...()# 创建 urllib2 的 Opener,将 Cookie 处理器加入其中opener = urllib2.build_opener(cookie_handler)# 定义请求url = "https...以下是一个示例代码,演示如何使用 urllib2 和 CookiesMiddleware 获取拉勾网的 Cookie:import urllib2import cookielib# 设置代理信息proxyHost...= cookielib.CookieJar()# 创建 Cookie 处理器cookie_handler = urllib2.HTTPCookieProcessor(cookie_jar)# 创建 urllib2
urllib2.urlopen(req,timeout=3) data表示post方式提交给目标服务器的参数 data = urllib.urlencode(data) import urllib,urllib2...urllib2还提供了接口来处理一般情况,例如:基础验证,cookies,代理和其他,它们通过handlers和openers的对象实现。...User-Agent’:’Mozilla/5.0 (X11; U; Linux i686)Gecko/20071127 Firefox/2.0.0.11′} import urllib import urllib2...如果要修改http报头,可以用: import urllib2 opener = urllib2.build_opener() opener.addheaders = [('User-agent',
# -*- coding: utf-8 -*- import urllib2 # http发送报文 def httpsend(url, bw): req = urllib2.Request(
当然这个opener也不是一次加载就再也不可变了,urllib2提供了install_opener这个方法,你可以在客户端调用build_opener然后用前面的那个install_opener来加载。...另外,最近一直在思考一个问题,如何把这些(我学到的东西,比如urllib2)东西能够更好的,更清晰易懂的让读者明白。...自己理解urllib2的源码不难,难的是以何种方式或者说何种组织结构来写能让人更容易懂。不知道各位有没有什么好的建议或者好的书籍推荐。
在接口测试中或者说在网络爬虫中,urllib2库是必须要掌握的一个库,当然还有优秀的requests库,今天重点来说urllib2库在接口测试中的应用。...查看urllib2库的详细的帮助文档,见执行的代码: #!.../usr/bin/env python #-*-coding:utf-8-*- import urllib2 print type(help(urllib2)) 首先我们来看一个完整的请求和响应内容...,然后通过urllib2的库来实现这样的一个过程,我们访问http://m.cyw.com/切换城市,见抓取的信息,见截图: ?.../usr/bin/env python # -*-coding:utf-8-*- import urllib2 import urllib def selCity(): '''使用urllib2
在Python中,我们使用urllib2这个组件来抓取网页。 urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件。...最简单的urllib2的应用代码只需要四行。...urllib2用一个Request对象来映射你提出的HTTP请求。...urllib2使用相同的接口处理所有的URL头。例如你可以像下面那样创建一个ftp请求。 在HTTP请求时,允许你做额外的两件事。...编码工作使用urllib的函数而非urllib2。 我们新建一个文件urllib2_test03.py来感受一下: 如果没有传送data参数,urllib2使用GET方式的请求。
urllib2的异常错误处理 在我们用urlopen或opener.open方法发出一个请求时,如果urlopen或opener.open不能处理这个response,就产生错误。...#urllib2_urlerror.py import urllib2 request = urllib2.Request("http://www.sdfsdfsf.com") try: urllib2...注意,urllib2可以为我们处理重定向的页面(也就是3开头的响应码),100-299范围的号码表示成功,所以我们只能看到400-599的错误号码 #-*- coding:utf-8 -*- #23.urllib2..._urllib2_httperror.py import urllib2 request = urllib2.Request("http://blog.baidu.com/itcast") try...的父类是URLError,所以父类的异常应当写到子类异常的后面,所以上述的代码可以这么改写: #-*- coding:utf-8 -*- #24.urllib2_botherror.py import urllib2
了解了这些知识后,接下来真正迈向爬虫之路....... urllib2 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。...在Python中有很多库可以用来抓取网页,先学习urllib2。...urllib2模块直接导入就可以用,在python3中urllib2被改为urllib.request 开始爬虫需要准备的一些工具 (1)下载Fiddeler抓包工具,百度直接下载安装就可以(抓包) (...的主要区别 urllib和urllib2都是接受URL请求的相关模块,但是提供了不同的功能,最显著的区别如下: (1)urllib仅可以接受URL,不能创建,设置headers的request类实例;...(2)但是urllib提供urlencode()方法用来GET查询字符串的产生,而urllib2则没有(这是urllib和urllib2经常一起使用的主要原因) (3)编码工作使用urllib的urlencode
urllib2做为python下,在httplib之上再次封装的强大html协议实现,应用非常广泛。...虽然现在又有更新的requests,httplib2等,但urllib2胜在强大的应用基础以及众多的网络资料。...1 #测试2调试开关 2 import urllib2 3 8 request=urllib2.Request('https://www.hicloud.com/others/login.action..._context = context 3、direct转向自动支持 urllib2支持自动转向,假如服务器端有自动redirect,urllib2会自动去提交获取到转向链接,并执行结果。...源码详细解释 另外,附一篇有关urllib2源码的说明文章,作者虽然加了很多注释,但对于初学者有点难度,尤其是html协议没学好的同学。
User-Agent', 'fake-client') response = urllib2.urlopen(request) html = response.read() 就是这样,其实urllib2...import urllib2 enable_proxy = True proxy_handler = urllib2.ProxyHandler({"http" : 'http://some-proxy.com...2.4 Timeout设置 在老版本中,urllib2 的 API 并没有暴露 Timeout 的设置,要设置 Timeout 值,只能更改 Socket 的全局 Timeout 值...2.6 Redirect重定向 urllib2 默认情况下会针对 3xx HTTP 返回码自动进行 Redirect 动作,无需人工配置。...虽然如此,我们还是能通过下面的方式,使 urllib2 能够发出 HTTP PUT 或 DELETE 的包: importurllib2 request =urllib2.Request(uri,
领取专属 10元无门槛券
手把手带您无忧上云