python入門實踐一:簡單爬蟲

說明:個人練手python用。
操作系統(tǒng):window10 x64
IDE:Pycharm 2017.2.2
Python版本:3.6.2

一、下載單個圖片

# 導入模塊
from urllib import request
# 指定要下載的圖片的地址
url = "http://pic.qiantucdn.com/images/banner/59ad4e6c86b91.jpg"
# 發(fā)送請求
request = request.urlopen(url)
# 獲取返回結(jié)果
response = request.read()
# 創(chuàng)建一個圖片文件,名稱和圖片原名稱一致
f = open("C:/python_test/"+url.split("/")[-1],"wb")
# 寫入數(shù)據(jù)
f.write(response)
# 關(guān)閉文件
f.close()

其中最后三句代碼也可以簡化如下:

with open("C:/python_test/"+url.split("/")[-1],"wb") as f:
    f.write(response)

使用with關(guān)鍵字,就不需要關(guān)閉流了。

二墓毒、下載整頁圖片

# urllib是庫,request中該庫中的模塊亲怠,用于發(fā)送HTTP請求
import urllib.request
# 引入正則表達式模塊
import re
# 網(wǎng)頁地址所计,里面包含眾多圖片,需要寫正則篩選出來
url = "http://www.58pic.com/piccate/5-145-0.html"
# 發(fā)送請求
req = urllib.request.urlopen(url)
# 接收相應(yīng)的內(nèi)容
res = req.read()
# 將相應(yīng)的內(nèi)容轉(zhuǎn)為字符串類型
res = repr(res)
# 正則表達式 前面的一個 r 表示字符串為非轉(zhuǎn)義的原始字符串团秽,讓編譯器忽略反斜杠主胧,也就是忽略轉(zhuǎn)義字符
# \S匹配任意非空字符 *表示0-n次
regex = r'http://[\S]*.jpg'
# 將正則表達式編譯為正則表達式對象叭首,用于提高匹配效率
pattern = re.compile(regex)
# 使用編譯好的正則對象調(diào)用findall方法,篩選出所有符合正則的數(shù)據(jù)踪栋,結(jié)果為list類型
get_image = pattern.findall(res)
# 定義臨時變量焙格,用于命名下載的圖片
page = 1
for image in get_image:
  # urlretrieve用于將遠程數(shù)據(jù)下載到本地
  urllib.request.urlretrieve(image, "C:/python_test/"+"%s.jpg" % page)
  page += 1

三、顯示下載進度

這里的urlretrieve方法定義如下:

urlretrieve(url, filename=None, reporthook=None, data=None)
  • 1己英、第一個參數(shù)表示要下載的資源的地址
  • 2间螟、第二個參數(shù)表示保存的路徑及名稱
  • 3、第三個參數(shù)是一個回調(diào)函數(shù)损肛,當連接上服務(wù)器、以及相應(yīng)的數(shù)據(jù)塊傳輸完畢時會觸發(fā)該回調(diào)荣瑟,我們可以利用這個回調(diào)函數(shù)來顯示當前的下載進度治拿。
  • 4、第四個參數(shù)表示post到服務(wù)器的數(shù)據(jù)

該方法返回一個包含兩個元素(filename, headers)的元組笆焰,filename 表示保存到本地的路徑劫谅,header 表示服務(wù)器的響應(yīng)頭對象信息。如下:

('C:/python_test/34.jpg', <http.client.HTTPMessage object at 0x00000261B634AEB8>)

下面我們使用一下該函數(shù)嚷掠,去下載網(wǎng)絡(luò)上的一個文件捏检,同時顯示下載進度:

import urllib.request

# 回調(diào)函數(shù)定義
def callback(a, b, c):
    '''
    :param a: 已經(jīng)下載的數(shù)據(jù)塊的個數(shù)  
    :param b: 數(shù)據(jù)塊的大小,值是8192  
    :param c: 遠程文件的大小 
    '''  
    per = 100.0 * a * b / c
    if per > 100:
        per = 100
    print('%.2f%%' % per)

# 指定下載文件的地址
url = "http://sw.bos.baidu.com/sw-search-sp/software/3756358c42c34/npp_7.5.1_Installer.exe"
# 指定存儲的路徑和名稱
filename = "c:/python_test/notepad++.exe"
# 下載
urllib.request.urlretrieve(url, filename, callback)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末不皆,一起剝皮案震驚了整個濱河市贯城,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌霹娄,老刑警劉巖能犯,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異犬耻,居然都是意外死亡踩晶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門枕磁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渡蜻,“玉大人,你說我怎么就攤上這事计济∪孜” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵峭咒,是天一觀的道長税弃。 經(jīng)常有香客問我,道長凑队,這世上最難降的妖魔是什么则果? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任幔翰,我火速辦了婚禮,結(jié)果婚禮上西壮,老公的妹妹穿的比我還像新娘遗增。我一直安慰自己,他們只是感情好款青,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布做修。 她就那樣靜靜地躺著,像睡著了一般抡草。 火紅的嫁衣襯著肌膚如雪饰及。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天康震,我揣著相機與錄音燎含,去河邊找鬼。 笑死腿短,一個胖子當著我的面吹牛屏箍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播橘忱,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼赴魁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了钝诚?” 一聲冷哼從身側(cè)響起颖御,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎敲长,沒想到半個月后郎嫁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡祈噪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年泽铛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辑鲤。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡盔腔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出月褥,到底是詐尸還是另有隱情弛随,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布宁赤,位于F島的核電站舀透,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏决左。R本人自食惡果不足惜愕够,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一走贪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惑芭,春花似錦坠狡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至幻锁,卻和暖如春凯亮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背越败。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工触幼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人究飞。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像堂鲤,于是被迫代替她去往敵國和親亿傅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 聲明:本文講解的實戰(zhàn)內(nèi)容瘟栖,均僅用于學習交流葵擎,請勿用于任何商業(yè)用途! 一半哟、前言 強烈建議:請在電腦的陪同下酬滤,閱讀本文...
    Bruce_Szh閱讀 12,679評論 6 28
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)寓涨,斷路器盯串,智...
    卡卡羅2017閱讀 134,601評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,520評論 25 707
  • 孩子最近不再對我做的飯菜挑口了,相比之前的不屑戒良,哆嗦体捏,現(xiàn)在只是淡淡地說我吃不完這么多,實在是餓糯崎,他會就著醬菜吃兩碗...
    xyldaiqun閱讀 125評論 2 2
  • 你有你的官場沃呢,我有我的道場年栓;你有你的盛宴,我有我的細面薄霜;你有你的生活某抓,我有我的奔波纸兔;你有你的財富,我有我的破屋搪缨;你...
    梁噴噴閱讀 303評論 0 0