1. 程式人生 > >python 網路爬蟲抓取圖片

python 網路爬蟲抓取圖片

#-*- encoding: utf-8 -*-
'''
Created on 2014-4-24
 @author: Leon Wong
'''
import urllib2
import urllib
import re
import time
import os
import uuid
 #獲取二級頁面url
def findUrl2(html):
    re1 = r'http://tuchong.com/\d+/\d+/|http://\w+(?<!photos).tuchong.com/\d+/'
    url2list = re.findall(re1,html)
    url2lstfltr = list(set(url2list))
    url2lstfltr.sort(key=url2list.index)
    #print url2lstfltr
    return url2lstfltr
 #獲取html文字
def getHtml(url):
    html = urllib2.urlopen(url).read().decode('utf-8')#解碼為utf-8
    return html
 #下載圖片到本地
def download(html_page , pageNo):
    #定義資料夾的名字
    x = time.localtime(time.time())
    foldername = str(x.__getattribute__("tm_year"))+"-"+str(x.__getattribute__("tm_mon"))+"-"+str(x.__getattribute__("tm_mday"))
    re2=r'http://photos.tuchong.com/.+/f/.+\.jpg'
    imglist=re.findall(re2,html_page)
    print imglist
    download_img=None
    for imgurl in imglist:
        picpath = 'D:\\TuChong\\%s\\%s'  % (foldername,str(pageNo))
        filename = str(uuid.uuid1())
        if not os.path.exists(picpath):
            os.makedirs(picpath)
        target = picpath+"\\%s.jpg" % filename
        print "The photos location is:"+target
        download_img = urllib.urlretrieve(imgurl, target)#將圖片下載到指定路徑中
        time.sleep(1)
        print(imgurl)
    return download_img

# def callback(blocknum, blocksize, totalsize):
#     '''回撥函式
#     @blocknum: 已經下載的資料塊
#     @blocksize: 資料塊的大小
#     @totalsize: 遠端檔案的大小
#     '''
#     print str(blocknum),str(blocksize),str(totalsize)
#     if blocknum * blocksize >= totalsize:
#         print '下載完成'

def quitit():
    print "Bye!"
    exit(0)


if __name__ == '__main__':
    print '''            *****************************************
            **    Welcome to Spider for TUCHONG    **
            **      Created on 2014-4-24           **
            **      @author: Leon Wong             **
            *****************************************'''
    pageNo = raw_input("Input the page number you want to scratch (1-100),please input 'quit' if you want to quit>")
    while not pageNo.isdigit() or int(pageNo) > 100 :
        if pageNo == 'quit':quitit()
        print "Param is invalid , please try again."
        pageNo = raw_input("Input the page number you want to scratch >")

    #針對圖蟲人像模組來爬取
    html = getHtml("http://tuchong.com/tags/%E4%BA%BA%E5%83%8F/?page="+str(pageNo))

    detllst = findUrl2(html)
    for detail in detllst:
        html2 = getHtml(detail)
        download(html2,pageNo)
    print "Finished."

相關推薦

python 網路爬蟲圖片

#-*- encoding: utf-8 -*- ''' Created on 2014-4-24 @author: Leon Wong ''' import urllib2 import urllib import re import time import os im

python網路爬蟲--股票資訊到Mysql

1.建表mysql -u root -p 123456create database test default character set utf8;create table stocks --a股(  code varchar(10) comment '程式碼',  nam

Python網路爬蟲動態網頁並將資料存入資料庫MYSQL

簡述 以下的程式碼是使用python實現的網路爬蟲,抓取動態網頁http://hb.qq.com/baoliao/。此網頁中的最新、精華下面的內容是由JavaScript動態生成的。審查網頁元素與網頁原始碼是不同。 本人對於Python學習建立了一個小小的學習圈子,為各位提供了

java之 25天 網路爬蟲圖片(二)

[size=medium][b]正則表示式練習[/b][/size]import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.TreeSet;publ

python爬蟲圖片

關於python爬蟲一直以來是很著名的,林林總總也有很多方法,大致起來也就是一個原理。 下面我來介紹一下我用的BeautifulSoup獲取的,正則獲取也很簡單,在這裡只說一下BeautifulSoup方法,使用伯樂線上網站作為參考的例子 程式碼如下 #encoding

python網路爬蟲汽車之家的最新資訊和照片

實現的功能是爬取汽車之家的最新資訊的連結 題目和文章中的照片 爬蟲需要用到我們使用了 requests 做網路請求,拿到網頁資料再用 BeautifulSoup 進行解析 首先先檢查是否安裝了pip,如果已經安裝了pip,直接pip install requests,pip uninstal

java演算法-網路爬蟲網頁並儲存

從一個URL中讀取網頁,如果是同一個網站的就儲存,URL裡面包含URL列表,繼續抓取,抓完全部 使用多執行緒 A執行緒讀取URL內容 B執行緒存檔案 C執行緒解析URL 發現新URL從A執行緒讀取完的內容可以放到一個佇列裡面,B執行緒來讀取,C執行緒解析URL  問題,如果這個佇列

學會用python網路爬蟲鬥圖網的表情包,聊微信再也不怕鬥圖了

最近總是有人跟我鬥圖,想了想17年中旬時在網上看過一篇關於爬取鬥圖網表情包的py程式碼,但是剛想爬的時候發現網頁結構發生了變化,而且鬥圖網還插入了很多廣告,變化其實挺大的,所以臨時寫了一個爬蟲,簡單的爬取了鬥圖網的表情包。從這連結上看,page表示的是第幾頁,我

python網路爬蟲房價資訊

爬取房天下(http://newhouse.cd.fang.com/house/s/)成都地區的新房資訊。開啟http://newhouse.cd.fang.com/house/s/,F12進入控制檯點選控制檯的左上角的按鈕,這是你可以將滑鼠移至房天下頁面的任何一個地方然後單

Python selenium爬蟲船舶網站資料(動態頁面)

很早之前就開始學習爬蟲了,一直想學習爬取動態頁面,正巧工作中需要用到一個船舶資訊的網站,每次都是手動查詢太麻煩了,昨天下午研究了一下午,總算搞透徹了,基本步驟如下: 1、啟動瀏覽器 2、開啟網頁 3、模擬輸入,模擬點選 4、稍等一會(很重要) 5、獲取

搜尋引擎—網路爬蟲策略

爬蟲的不同抓取策略,就是利用不同的方法確定待抓取URL佇列中URL優先順序的。 爬蟲的抓取策略有很多種,但不論方法如何,基本目標一致:優先選擇重要網頁進行抓取。 網頁的重要性,評判標準不同,大部分採用網頁的流行性進行定義。 效果較好或有代表性的抓取策略:

Python爬蟲--單一頁面上的圖片文件學習

python 爬蟲 #!/usr/bin/python import sys #正則表達式庫 import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() ret

Python爬蟲 —— 美女圖片

In root lxml 取圖 ext time style main HR 代碼如下: 1 #coding:utf-8 2 # import datetime 3 import requests 4 import os 5 import sys

Python爬蟲 —— 美女圖片(Scrapy篇)

parse color 爬蟲 select 尺度 dex -i www 模塊 雜談: 之前用requests模塊爬取了美女圖片,今天用scrapy框架實現了一遍。 (圖片尺度確實大了點,但老衲早已無戀紅塵,權當觀賞哈哈哈) Item: # -*- codi

python爬蟲-- 網頁、圖片、文章

零基礎入門Python,給自己找了一個任務,做網站文章的爬蟲小專案,因為實戰是學程式碼的最快方式。所以從今天起開始寫Python實戰入門系列教程,也建議大家學Python時一定要多寫多練。 目標 1,學習Python爬蟲 2,爬取新聞網站新聞列表 3,爬取圖片 4,把爬取到的資料存在本地

Python網路爬蟲實戰:和分析天貓胸罩銷售資料

本文實現一個非常有趣的專案,這個專案是關於胸罩銷售資料分析的。Google曾給出了一幅世界女性胸部尺寸分佈地圖 ,從地圖中可以明顯看出中國大部分地區呈現綠色(表示平均胸部尺寸為A罩杯),少部分地區呈現藍色(表示平均胸部尺寸為B罩杯) 現在李寧老師也來驗證一下這個

[Python]網路爬蟲(一):網頁的含義和URL基本構成

一、網路爬蟲的定義 網路爬蟲,即Web Spider,是一個很形象的名字。 把網際網路比喻成一個蜘蛛網,那麼Spider就是在網上爬來爬去的蜘蛛。 網路蜘蛛是通過網頁的連結地址來尋找網頁的。 從網站某一個頁面(通常是首頁)開始,讀取網頁的內容,找到在網頁中的其它連結地址

[Python]網路爬蟲(二):利用urllib2通過指定的URL網頁內容

版本號:Python2.7.5,Python3改動較大,各位另尋教程。 所謂網頁抓取,就是把URL地址中指定的網路資源從網路流中讀取出來,儲存到本地。  類似於使用程式模擬IE瀏覽器的功能,把URL作為HTTP請求的內容傳送到伺服器端, 然後讀取伺服器端的響應資源。 在

第一個Python爬蟲-煎蛋網上圖片

背景 作為一個計算機基礎薄弱的電氣工程師,廖大的教程看到常用的內建模組時,看的頭大,特別是看到HTMLParser時,已宛如天書了。這時作為一個初學者的劣勢就暴露出來了,我不知道哪部分知識是理解這些模組的前置條件,即使知道是哪部分知識,但不知道該理解到什麼程度才能解決當前的問題。個人建議

Python網路爬蟲訂餐資訊

         本文以大眾點評網為例,獲取頁面的餐館資訊,以達到練習使用python的目的。              1.抓取大眾點評網中關村附近的餐館有哪些 import urllib.request import re def fetchFood(url):