在简单的情况下,我们会使用urllib2模块的最常用的方法urlopen。但只要打开HTTP URL时遇到错误或异常的情况下,就需要一些HTTP传输协议的知识。...这是一个最全面和最权威的技术文档,且不易于阅读。在使用urllib2时会用到HTTP RFC2616相关的知识,了解即可。...例如,urllib2发现response的URL与你请求的URL不同时也就是发生了重定向时,会自动处理。对于不能处理的请求, urlopen将抛出HTTPError异常....当一个错误被抛出的时候,服务器返回一个HTTP错误代码和一个错误页。你可以使用返回的HTTP错误示例。...(错误码范围在300内),错误码在100-299范围内的表示请求成功,所以通常会看到的错误代码都是在400-599的范围内。
只接收一个url urllib 有urlencode,urllib2没有,这也是为什么总是urllib,urllib2常会一起使用的原因 r = Request(url='http://www.mysite.com...正常情况下程 序一直通过urlopen使用默认的opener(也就是说当你使用urlopen方法时,是在隐式的使用默认的opener 对象),但也可以创建自定义的openers(通过操作 器handlers...URLError——handlers当运行出现问题时(通常是因为没有网络连接也就是没有路由到指定的服务器,或在指定的服务器不存在) HTTPError——HTTPError是URLError的子类。...例如,urllib2发现response的URL与你请求的URL不同时也就是发生了重定向时,会 自动处理。对于不能处理的请求, urlopen将抛出 – – – HTTPError异常....典型的错误包含‘404′ (没有找到页面), ‘403′ (禁止请求),‘401′ (需要验证)等。它包含2个重要的属性reason和code。
的子类,在你利用urlopen方法发出一个请求时,服务器上都会对应一个应答对象response,其中它包含一个数字”状态码”。...其他不能处理的,urlopen会产生一个HTTPError,对应相应的状态吗,HTTP状态码表示HTTP协议所返回的响应的状态。下面将状态码归结如下: 100:继续 客户端应当继续发送请求。...一般来说,这个问题都会在服务器端的源代码出现错误时出现。 501:服务器无法识别 服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。...502:错误网关 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。 503:服务出错 由于临时的服务器维护或者过载,服务器当前无法处理请求。...)except urllib2.HTTPError, e: print e.code print e.reason 运行结果如下 12 403Forbidden 错误代号是403,错误原因是
Urllib: Python中有一个功能强大,用于操作URL,并且在爬虫中经常使用的库、就是Urllib库。 (在python2的时候,有Urllib库,也有Urllib2库。...Python3以后把Urllib2合并到了Urllib中) 合并后,模块中有很多的位置变动。我在这里先介绍一些常用的改动。...接下来我会对Urllib做更深入的讲解。 浏览器的模拟Headers属性 首先我想说并不是每一次的获取都是有效的,很多时候我们无法爬取一些网页,会提示403错误。...这样就能正常的爬取我们想要的信息了。 当使用之前的爬取方法出现403的时候,我们需要去设置User-Agent信息。 比如任意打开一个网页,(www.baidu.com)按下F12进入开发者模式。...3、通过urlopen()打开构建的Request对象 4、按需求进行后续的处理操作。读取写入。 POST请求 我们在登录注册的操作时,基本上都会遇到POST请求。
本篇将介绍urllib2的Get和Post方法,更多内容请参考:python学习指南 urllib2默认只支持HTTP/HTTPS的GET和POST方法 urllib.urlencode() urllib...Content-Type: application/x-www-form-urlencoded:表示浏览器提交web表单时,表单数据会按照name1=value1&name2=value2键值对形式进行编码...如果SSL证书验证不通过,或者操作系统不信任服务器的安全证书,比如浏览器在访问12306网站如:"https://www.12306.cn/normhweb/"的时候,会警告用户证书不受信任。...urllib2在访问的时候则会报出SSLError: import urllib2 url = "https://www.12306.cn/mormhweb/" headers = {"User-Agent...import urllib import urllib2 # 1. 导入Python SSL处理模块 import ssl # 2. 表示忽略未经核实的SSL证书认证 context = ssl.
首先,推荐两个关于python爬虫不错的博客:Python爬虫入门教程专栏 和 Python爬虫学习系列教程 。写的都非常不错,我学习到了很多东西!在此,我就我看到的学到的进行总结一下! ...归根到底就是我们通过程序访问网站得到html代码,然后分析html代码获取有效内容的过程。下面让我们从最简单的爬虫开始: 爬取一个页面源代码 在python中,抓取网页的库是urllib2。...我们来看一下urlopen的用法: 1 >>> help(urllib2.urlopen) 2 Help on function urlopen in module urllib2: 3 4 urlopen...在访问网站的情况下我们可能会遇到一些网站错误,我们要在程序中进行处理(一如既往的try... except...得到错误信息内容): 1 import urllib2 2 3 req = urllib2...:400 非法请求 403 禁止访问 404 未找到资源 500 服务器内部错误 200 访问成功。
源 / Python网络爬虫与数据挖掘 爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。...(request) print(response.read()) 2、使用代理IP 开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP; 在urllib2包中有ProxyHandler类...所以用urllib2直接访问网站经常会出现HTTP Error 403: Forbidden的情况 对有些 header 要特别留意,Server 端会针对这些 header 做检查 User-Agent...有些 Server 或 Proxy 会检查该值,用来判断是否是浏览器发起的 Request Content-Type 在使用 REST 接口时,Server 会检查该值,用来确定 HTTP Body...虽然说python的多线程很鸡肋,但是对于爬虫这种网络频繁型,还是能一定程度提高效率的。
首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫 当我们在浏览器中输入一个url后回车,后台会发生什么?...=url, data=data) response = urllib2.urlopen(req) 2.2 使用cookie登陆 使用cookie登陆,服务器会认为你是一个已登陆的用户,所以就会返回给你一个已登陆的内容...(proxy_support, urllib2.HTTPHandler) urllib2.install_opener(opener) # 安装opener,此后调用urlopen()时都会使用安装过的...这就是为什么如果你直接去爬网页本身的url,你会找不到页面的实际内容。...Scrapy Scrapy是一个基于Twisted的开源的Python爬虫框架,在工业中应用非常广泛。 Robots协议 好的网络爬虫,首先需要遵守Robots协议。
爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。...(request) print response.read() 2、使用代理IP 在开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP; 在urllib2包中有ProxyHandler类,...所以用urllib2直接访问网站经常会出现HTTP Error 403: Forbidden的情况。...对有些 header 要特别留意,Server 端会针对这些 header 做检查: 1.User-Agent 有些 Server 或 Proxy 会检查该值,用来判断是否是浏览器发起的 Request...2.Content-Type 在使用 REST 接口时,Server 会检查该值,用来确定 HTTP Body 中的内容该怎样解析。
所以在Python 3中使用urllib2会导致找不到模块的错误。...six是一个用于在Python 2和Python 3之间进行兼容处理的工具库。它提供了很多兼容性相关的功能。您可以使用six.moves模块中的别名来替代urllib2。...然而,在升级到Python 3后,使用旧的urllib2库会出现ModuleNotFoundError: No module named 'urllib2'的错误。...然后通过add_header方法将自定义的头部信息添加到请求中。4. 处理异常在使用urllib2发送请求时,可能会遇到一些异常情况,例如网络连接失败或服务器返回错误等。...但需要注意的是,由于在Python 3中被移除,所以在Python 3中应该使用urllib.request和urllib.error模块来代替urllib2。
爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。...1、基本抓取网页 get方法 import urllib2 url "http://www.baidu.com" respons = urllib2.urlopen(url) print response.read...(request) print response.read() 2、使用代理IP 在开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP; 在urllib2包中有ProxyHandler类,...所以用urllib2直接访问网站经常会出现HTTP Error 403: Forbidden的情况 对有些 header 要特别留意,Server 端会针对这些 header 做检查 User-Agent...有些 Server 或 Proxy 会检查该值,用来判断是否是浏览器发起的 Request Content-Type 在使用 REST 接口时,Server 会检查该值,用来确定 HTTP Body
用python也差不多一年多了,python应用最多的场景还是web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。...爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。...(request) print response.read() 2、使用代理IP 在开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP; 在urllib2包中有ProxyHandler类,...所以用urllib2直接访问网站经常会出现HTTP Error 403: Forbidden的情况 对有些 header 要特别留意,Server 端会针对这些 header 做检查 User-Agent...有些 Server 或 Proxy 会检查该值,用来判断是否是浏览器发起的 Request Content-Type 在使用 REST 接口时,Server 会检查该值,用来确定 HTTP Body
爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。...(request) print(response.read()) 2、使用代理IP 开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP; 在urllib2包中有ProxyHandler类...所以用urllib2直接访问网站经常会出现HTTP Error 403: Forbidden的情况 对有些 header 要特别留意,Server 端会针对这些 header 做检查 User-Agent...有些 Server 或 Proxy 会检查该值,用来判断是否是浏览器发起的 Request Content-Type 在使用 REST 接口时,Server 会检查该值,用来确定 HTTP Body...虽然说python的多线程很鸡肋,但是对于爬虫这种网络频繁型,还是能一定程度提高效率的。
爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。...(request) print response.read() 2、使用代理IP 在开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP; 在urllib2包中有ProxyHandler类,...所以用urllib2直接访问网站经常会出现HTTP Error 403: Forbidden的情况 对有些 header 要特别留意,Server 端会针对这些 header 做检查 User-Agent...有些 Server 或 Proxy 会检查该值,用来判断是否是浏览器发起的 Request Content-Type 在使用 REST 接口时,Server 会检查该值,用来确定 HTTP Body...虽然说python的多线程很鸡肋,但是对于爬虫这种网络频繁型,还是能一定程度提高效率的。
当我们在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个Request请求去获取 http://www.baidu.com 的html文件,服务器把Response文件对象发送回给浏览器...HTTPS 是以安全为目标的 HTTP 通道,所以在 HTTPS 承载的页面上不允许出现 HTTP 请求,一旦出现就是提示或报错。 4....服务器和客户端的交互仅限于请求/响应过程,结束之后便断开,在下一次请求时,服务器会认为新的客户端。 为了维护他们之间的链接,让服务器知道这是前一个用户发送的请求,必须在一个地方保存客户端的信息。...在Python中有很多库可以用来抓取网页,先学习urllib2。...urllib2模块直接导入就可以用,在python3中urllib2被改为urllib.request 开始爬虫需要准备的一些工具 (1)下载Fiddeler抓包工具,百度直接下载安装就可以(抓包) (
在network一栏中找到Headers,在里面我们能看到Request Headers,这就是我们发送当前页面请求所用的请求头。...URLError: 通常,URLError被抛出是因为网络请求出现了错误,比如服务器访问错误,或者访问的站点不存在,在这种情况下都会抛出一个URLError,这个错误是一个包含着reason和code的元组...') try: urllib2.urlopen(req) except urllib2.URLError as e : print e.reason 在接触URLError之前,大家一定更早的接触过...HTTPError,每个来自服务器的HTTP应答都会携带着一个包含数值的状态码,例如我们耳熟能详的200、404(页面丢失)、403(请求被禁止)等等。...最后诸如代理什么的也就不讲解了,因为我觉得使用到这些的时候,大家可能就不会使用urllib2这个库了,有更好的轮子在等着你们。放上urllib2库的官方文档,有不懂的可以速查哟。
会话跟踪之cookie操作 在很多网站上,都使用了基于cookie的会话跟踪技术,如有道在线翻译的操作过程中就是用cookie进行了状态保持的操作; 在进行爬虫操作的过程中,我们会大量的使用到cookie...爬虫异常行为 在进行目标网址的访问和数据采集过程中,由于目标网址拼写、网络阻塞等等各种问题,可能会导致目标网址访问失败的情况,在python爬虫模块中,主要通过URLError类型来规范定义爬虫访问url...地址出现的问题,同时提供了继承自URLError的HTTPError类型专门针对HTTP请求进行的异常行为的处理 但是切记,一切服务器返回的异常行为,都是服务器内部直接出现错误行为并且返回错误状态码导致的异常行为... 程序运行完成 我们可以看到程序并没有出现任何和异常行为相关的错误信息,因为百度的服务器已经将404的异常行为在服务器中进行了处理并且返回了指定的404网页数据,所以爬虫在访问时获取到了404...= urllib2.urlopen(request) print response.read() 出现如下的错误提示: urllib2.URLError: <urlopen error [SSL:
1.1 介绍 通过过滤和分析HTML代码,实现对文件、图片等资源的获取,一般用到: urllib和urllib2模块 正则表达式(re模块) requests模块 Scrapy框架 urllib库:.../usr/bin/env python import urllib,urllib2 import re def getHtml(url): page = urllib2.urlopen(url).../usr/bin/env python import urllib,urllib2 import re page = 1 url = "https://www.qiushibaike.com/8hr/page.../usr/bin/env python #coding:utf-8 import urllib,urllib2 import re def getPage(page_num=1): url =.../usr/bin/env python #coding:utf-8 import urllib,urllib2 import re import sys def getPage(page_num=1)
下面继续学习python的web模块 --- urllib2,一个源于urllib又高于urllib的模块。...1 urllib2 简介 urllib2是python自带的一个访问网页及本地文件的库。 ...2 urllib2 常用方法 2.1 urllib2.urlopen urlopen()是最简单的请求方式,它打开url并返回类文件对象,并且使用该对象可以读取返回的内容 urllib2...在使用 REST 接口时,Server 会检查Content-Type字段,用来确定 HTTP Body 中的内容该怎样解析。...在这种情况下,含有reason属性的异常将被抛出,以一种包含错误代码 和文本错误信息的tuple形式。 #!
领取专属 10元无门槛券
手把手带您无忧上云