python3爬蟲爬取網頁圖片簡單示例

   本人也是剛剛開始學習python的爬蟲技術,而後原本想在網上找點教程來看看,誰知道一搜索,大部分的都是用python2來寫的,新手嘛,通常都喜歡裝新版本。因而我也就寫一個python3簡單的爬蟲,爬蟲一下貼吧的圖片吧。話很少說,咱們開始。html

首先簡單來講說一下知識。python

1、什麼是爬蟲?瀏覽器

網頁上面採集數據函數

2、學習爬蟲有什麼做用?學習

作案例分析,作數據分析,分析網頁結構.......網站

3、爬蟲環境url

需求:python3x  pycharmspa

模塊:urllib 、urllib二、bs四、recode

4、爬蟲思路:orm

1.      打開網頁,獲取源碼。

*因爲多人同時爬蟲某個網站時候,會形成數據冗餘,網站崩潰,因此一些網站是禁止爬蟲的,會返回403拒絕訪問的錯誤信息。----獲取不到想要的內容/請求失敗/IP容易被封……..等

*解決辦法:假裝——不告訴網站我是一個腳本,告訴它我是一個瀏覽器。(加上隨便一個瀏覽器的頭部信息,假裝成瀏覽器),因爲是簡單例子,那咱們就不搞這些騷操做了。

2.     獲取圖片

*Find函數 :只去找第一個目標,查詢一次

*Find_all函數: 找到全部的相同的目標。

這裏可能有一個解析器的問題,咱們也不說了,出問題的同窗百度一堆解決辦法。

3.      保存圖片地址與下載圖片

*a.使用urlib---urlretrieve下載(保存位置:若是保存在跟*.py文件同一個地方,那麼只須要文件夾名稱便可,若是是其餘地方,那麼得寫絕對路徑。)

算了,不說那麼多廢話,既然是個簡單例子,那我就直接貼代碼吧。相信也沒多少人呢看不懂。

提一句:用BeautifulSoup 就能夠不用正則;爬蟲用正則,Bs4, xpath三種 選擇一個就好。固然也能夠混合使用,也還有其餘種。

爬取地址:http://tieba.baidu.com/p/3840085725

代碼以下:

import urllib.request
import re
import os
import urllib

#根據給定的網址來獲取網頁詳細信息,獲得的html就是網頁的源代碼
def getHtml(url):
    page = urllib.request.urlopen(url)
    html = page.read()
    return html.decode('UTF-8')

def getImg(html):
    reg = r'src="(.+?\.jpg)" pic_ext'
    imgre = re.compile(reg)                              #轉換成一個正則對象
    imglist = imgre.findall(html)                        #表示在整個網頁中過濾出全部圖片的地址,放在imglist中

    x = 0                                                #聲明一個變量賦值
    path = 'H:\\python lianxi\\zout_pc5\\test'           #設置保存地址


    if not os.path.isdir(path):
        os.makedirs(path)                           # 將圖片保存到H:..\\test文件夾中,若是沒有test文件夾則建立
    paths = path+'\\'                               #保存在test路徑下

    for imgurl in imglist:

        urllib.request.urlretrieve(imgurl,'{0}{1}.jpg'.format(paths,x)) #打開imglist,下載圖片保存在本地,
                                                                        #format格式化字符串
        x = x + 1
        print('圖片已開始下載,注意查看文件夾')
    return imglist

html = getHtml("http://tieba.baidu.com/p/3840085725")         #獲取該網址網頁詳細信息,html就是網頁的源代碼
print (getImg(html))                                          #從網頁源代碼中分析並下載保存圖片

 

最後效果如圖:

好了,教程到這裏就結束了,更多精彩,敬請關注:IT民工_柒曉白

(ps:對於python本人也是新手,文章有任何錯誤請多多包涵)

相關文章
相關標籤/搜索