python urllib模塊的urlopen()的使用方法及實例


Python urllib 庫提供了一個從指定的 URL 地址獲取網頁數據,然后對其進行分析處理,獲取想要的數據。

一、urllib模塊urlopen()函數:

urlopen(url, data=None, proxies=None)

創建一個表示遠程url的類文件對象,然后像本地文件一樣操作這個類文件對象來獲取遠程數據。

參數url表示遠程數據的路徑,一般是網址;
參數data表示以post方式提交到url的數據(玩過web的人應該知道提交數據的兩種方式:post與get);
參數proxies用於設置代理。


urlopen返回 一個類文件對象(fd),它提供了如下方法:
read() , readline() , readlines() , fileno() , close() :這些方法的使用方式與文件對象完全一樣;
info():返回一個httplib.HTTPMessage 對象,表示遠程服務器返回的頭信息(header)
getcode():返回Http狀態碼。如果是http請求,200表示請求成功完成;404表示網址未找到;
geturl():返回請求的url;

二、實例

1、打開一個網頁獲取所有內容

from urllib2 import urlopen
doc = urlopen("http://www.baidu.com").read()
print doc

2、獲取http頭部(頭中有編碼格式信息)

from urllib2 import urlopen
doc = urlopen("http://www.baidu.com")
print doc.info()
print doc.info().getheader('Content-Type')

3、調用接口,並處理返回值json

 

import urllib2

 

 1 def start_pack(real_match):
 2 
 3         for x in real_match.keys():
 4                 start_url = 'http://www.google.com/start.do?ips=%s&versionId=%s&operator=dw_%s' % (",".join(real_match[x]), x,os.getlogin())
 5                 start_html = urllib2.urlopen(start_url)
 6                 start_json = json.loads(start_html.read())
 7 
 8                 task_url = 'http://www.google.com/TaskId.do?task_id=%s' % start_json['object']['taskId']
 9                 task_html = urllib2.urlopen(task_url)
10                 task_json = json.loads(task_html.read())
11 
12                 if start_json['code'] == 0:
13                         print "package %s start succees!" % task_json['object'][0]['package_name']
14                 else:
15                         print "package %s start error!" % task_json['object'][0]['package_name']
16 
17                 start_html.close()
18                 task_html.close()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM