Python中应用urllib2模块编写爬虫的简短上手示例
分类:编程应用

运用Python的urllib2模块管理url和图片的手艺两则,

收获带有粤语参数的url内容 对于华语的参数要是不开展编码的话,python的urllib2直接管理会报错,大家可以先将中文调换来utf- 8编码,然后采用urllib2.quote情势对参数实行url编码后传递。

content = u'你好 sharejs.com'
content = content.encode('utf-8')
content = urllib2.quote(content)
api_url = 'http://www.sharejs.com/q=%s'%content
res = urllib2.urlopen(api_url)

获得远程图片的尺寸和尺寸 这段代码通过urllib2张开远程图片,通过cStringIO读取文件内容,不用保存到磁盘就能够读取图片文件的新闻

#!/usr/bin/env python
#encoding=utf-8

import cStringIO, urllib2, Image

url = 'http://www.01happy.com/wp-content/uploads/2012/09/bg.png'
file = urllib2.urlopen(url)
tmpIm = cStringIO.StringIO(file.read())
im = Image.open(tmpIm)

print im.format, im.size, im.mode

Python中使用urllib2模块编写爬虫的粗略上手示例,pythonurllib2

聊起python做互联网爬虫就只可以聊起无敌的组件urllib2。在python中就是利用urllib2那么些组件来抓取网页的。urllib2是Python的一个获得ULANDLs(Uniform Resource Locators)的零件。它以urlopen函数的款式提供了三个极度简单的接口。通过上面的代码轻易感受一下urllib2的功用;

import urllib2 
response = urllib2.urlopen('http://www.baidu.com/') 
html = response.read() 
print html

运作结果如下;

图片 1

查看:
urllib2用一个Request对象来映射提议的HTTP诉求。你能够创立二个Request对象,通过调用urlopen并传播Request对象,将重回三个有关诉求response对象,那一个答复对象就像贰个文本对象,所以你能够在Response中调用.read()。修改代码如下;

import urllib2 
req = urllib2.Request('http://www.baidu.com') 
response = urllib2.urlopen(req) 
page = response.read() 
print page

意识运营结果跟修改前同一。同期在http央求前你还亟需做以下事1、发送表单数据。2、设置headers消息。
1、发送表单数据;常见于模拟登陆时,一般的在签到操作时索要发送数据到服务器。这里首要行使post方法,一般的HTML表单,data必要编码成标准情势。然后做为data参数字传送到Request对象。编码专门的学问采取urllib的函数而非urllib2。测量检验代码如下

import urllib 
import urllib2 

url = 'http://www.server.com/register.php' 

postData = {'useid' : 'user', 
   'pwd' : '***', 
   'language' : 'Python' } 

data = urllib.urlencode(postData) # 编码工作 
req = urllib2.Request(url, data) # 发送请求同时传data 
response = urllib2.urlopen(req) #接受反馈的信息 
page = response.read() #读取反馈的内容

同一时间urllib2还足以选取get方法传送数据。代码如下;

import urllib2 
import urllib 

data = {} 

data['useid'] = 'user' 
data['pwd'] = '***' 
data['language'] = 'Python' 

values = urllib.urlencode(data) 
print values 

name=Somebody+Here&language=Python&location=Northampton 
url = 'http://www.example.com/example.php' 
full_url = url + '?' + url_values 

data = urllib2.open(full_url)

2、设置headers消息;有个别站点对探望来源做了限定,所以那边模拟User-Agent头,代码如下;

import urllib 
import urllib2 

url = 'http://www.server.com/register.php' 

user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0' 
values = {'useid' : 'user', 
   'pwd' : '***', 
   'language' : 'Python' } 

headers = { 'User-Agent' : user_agent } 
data = urllib.urlencode(values) 
req = urllib2.Request(url, data, headers) 
response = urllib2.urlopen(req) 
page = response.read()

urllib2就介绍到此地呀!

老大管理 日常U福特ExplorerLError在向来不互联网连接时只怕服务器地址不可达时产生,在这种意况下非常会含有resaon属性满含了不当号和错误音信。如下代码测量检验效果;

import urllib 
import urllib2 

url = 'http://www.server.com/register.php' 

user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0' 
values = {'useid' : 'user', 
   'pwd' : '***', 
   'language' : 'Python' } 

headers = { 'User-Agent' : user_agent } 
data = urllib.urlencode(values) 
req = urllib2.Request(url, data, headers) 
response = urllib2.urlopen(req) 
page = response.read()

图片 2

查看有关材料后呈现Errno 10061表示服务器端主动拒绝。
除了这几个之外还大概有HTTPError,当顾客端与服务器之间创设寻常连接时,urllib2将上马拍卖有关数据。假诺遇上不能够管理的状态就能时有产生相应的HTTPError,如网址访问常见的错误码”404″(页面不能找到),”403″(要求禁止),和”401″(带验证央浼)等……HTTP状态码表示HTTP合同的响应景况,常见的动静码见HTTP状态码详解。
HTTPError会带有三个'code'属性,是服务器发送的错误号。当贰个HTTPError产生后服务器会重返贰个有关的荒唐号和不当页面。如下代码验证;

import urllib2 

req = urllib2.Request('http://www.python.org/callmewhy') 

try: 
 urllib2.urlopen(req) 

except urllib2.URLError, e: 

 print e.code 

图片 3

输出404代码,表明找不到页面。
捕捉非凡并管理……实现代码如下;

#-*- coding:utf-8 -*-
from urllib2 import Request, urlopen, URLError, HTTPError

req = Request('http://www.python.org/callmewhy')

try: 

 response = urlopen(req) 

except URLError, e: 

 if hasattr(e, 'code'): 

  print '服务器不能正常响应这个请求!' 

  print 'Error code: ', e.code 

 elif hasattr(e, 'reason'): 

  print '无法与服务器建立连接' 

  print 'Reason: ', e.reason 


else: 

 print '没有出现异常'

图片 4

马到功成捕捉到相当!

您恐怕感兴趣的文章:

  • python通过urllib2爬网页上种子下载示例
  • Python使用urllib2获取互联网财富实例讲明
  • python使用urllib2提交http post央求的法子
  • python使用urllib2达成发送带cookie的乞请
  • python通过urllib2获取带有汉语参数url内容的议程
  • 零基础写python爬虫之urllib2使用指南
  • 零基础写python爬虫之urllib第22中学的四个重大约念:Openers和Handlers
  • 零基础写python爬虫之使用urllib2组件抓取网页内容
  • Python库urllib与urllib2关键区别深入分析
  • python中央银行使urllib2获取http须求状态码的代码例子
  • Python中选择urllib2防止302跳转的代码例子
  • python中使用urllib2伪造HTTP报头的2个方法

获取带有汉语参数的url内容 对于华语的参数倘诺不进行编码的话,python的urllib2直接管理会...

您大概感兴趣的稿子:

  • Python中应用urllib2模块编写爬虫的简便上手示例
  • Python中urllib+urllib2+cookielib模块编写爬虫实战
  • 动用Python的urllib和urllib2模块制作爬虫的实例教程
  • python使用urllib2提交http post央浼的章程
  • python通过urllib2获取带有汉语参数url内容的不二秘籍
  • 零基础写python爬虫之urllib第22中学的七个非常重要概念:Openers和Handlers
  • 零基础写python爬虫之使用urllib2组件抓取网页内容
  • Python库urllib与urllib2主要区别解析
  • python中选取urllib2获取http央浼状态码的代码例子
  • Python中应用urllib2预防302跳转的代码例子
  • python中使用urllib2伪造HTTP报头的2个方法
  • python通过urllib2爬网页上种子下载示例
  • python33 urllib2使用办法细节疏解
  • Python使用urllib2获取网络能源实例讲授

谈起python做互联网爬虫就只可以提起有力的零件urllib2。在python中幸好利用urllib2那...

本文由正版必中一肖图发布于编程应用,转载请注明出处:Python中应用urllib2模块编写爬虫的简短上手示例

上一篇:配置访问静态文件 下一篇:没有了
猜你喜欢
热门排行
精彩图文