Python 學(xué)習(xí)記錄1

從豆瓣網(wǎng)下載整個相冊的圖片

從西祠代理網(wǎng)站爬取免費高匿ip 西祠代理

import os,time,requests,random
from bs4 import BeautifulSoup
import urllib
import urllib.request

# Get IP #
def get_proxy(num):
    os.chdir(r'C:\Users\xxxx\Desktop\Python')
    xiciurl = 'http://www.xicidaili.com/nn/{}'
    header = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/' '537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
    fp = open('host.txt','a+',encoding=('utf-8'))
    for i in range(num+1):
        api = xiciurl.format(i)
        response = requests.get(url=api,headers=header)
        soup = BeautifulSoup(response.text,'lxml')
        container = soup.find_all(name='tr',attrs={'class':'odd'})
        #print(container)
        for tag in container:
            try:
                con_soup = BeautifulSoup(str(tag),'lxml')
                td_list = con_soup.find_all('td')
                #print(td_list)
                ip = str(td_list[1])[4:-5]
                port = str(td_list[2])[4:-5]
                #print(ip,port)
                IPport = ip + '\t' + port + '\n'
                fp.write(IPport)
             except Exception as e:
                print('No IP!')
        time.sleep(1)
    fp.close()  
get_proxy(5) #抓取5頁的代理IP地址

驗證抓取的IP是否可用

 # verify IP #
def verify_proxy():
    n = 1
    os.chdir(r'C:\Users\xxxx\Desktop\Python')
    url = 'http://www.baidu.com'
    fp = open('host.txt','r')
    ips = fp.readlines()
    proxys = list()
    for p in ips:
        ip = p.strip('\n').split('\t')
        print(ip)
        proxy = 'http:\\' + ip[0] + ip[1]
        proxies = {'proxy':proxy}
        proxys.append(proxies)
    for pro in proxys:
        try:
            s = requests.get(url,proxies=pro)
            print('第{}個ip:{} 狀態(tài){}'.format(N,pro,s.status_code))
        except Exception as e:
            print(e)
        n+=1  
verify_proxy()

建立代理IP池

# Build IP pool 
def proxypool(num):
    n = 1
    os.chdir(r'C:\Users\xxxx\Desktop\Python')
    fp = open('host.txt','r')
    proxys = list()
    ips = fp.readlines()
    while n<num:
        for p in ips:
            ip = p.strip('\n').split('\t')
            proxy = 'http:\\' + ip[0] + ip[1]
            proxies = {'proxy':proxy}
            proxys.append(proxies)
            n+=1
    #print(proxys)
    return proxys  

抓取豆瓣相冊 再見臺灣

def download_album(pages,proxys):
    os.chdir(r'C:\Users\xxxx\Desktop\Python\Douban')
    download_dir = "C:\\Users\\xxxx\\Desktop\\Python\\Douban"
    url = 'https://www.douban.com/photos/album/1634496188/?start='
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/' '537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
    x = 1
    for i in range(0,pages):
        print(('第{}頁').format(i + 1))
        url_cur = url + str(i * 18)
        #print(url_cur)
        try:
            response = requests.get(url_cur, headers=headers, proxies=random.choice(proxys))
            time.sleep(2)
            while response.status_code != 200:
                response = requests.get(url_cur, headers=headers, proxies=random.choice(proxys))
                time.sleep(2)
            soup = BeautifulSoup(respones.text,'lxml')
            imgs = soup.find_all(name='div',attrs={'class':'photo_wrap'})
            #print(imgs)
            y = 0
            for img in imgs:
                imgurls = BeautifulSoup(str(img),'lxml').find_all('img')
                time.sleep(2)
                for u in imgurls:
                    img_url = u.get('src')
                    img_dir = download_dir + '\\'
                    z = str(x) + '_' + str(y)
                    print(('第{}張').format(y+1))
                    #print(img_url)
                    urllib.request.urlretrieve(img_url,'{}{}.jpg'.format(img_dir,z))
                    y = y + 1
                    time.sleep(2)
        except:
            time.sleep(5)
            continue
        x = x + 1
    time.sleep(5)

start = time.time()
proxyPool = proxypool(100)
download_album(17,proxyPool)
end = time.time()
timeUse = int(end-start)
print('耗時{}s'.format(timeUse))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缆八,更是在濱河造成了極大的恐慌,老刑警劉巖垃杖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丈屹,居然都是意外死亡调俘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門旺垒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來彩库,“玉大人,你說我怎么就攤上這事先蒋『眨” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵竞漾,是天一觀的道長眯搭。 經(jīng)常有香客問我,道長业岁,這世上最難降的妖魔是什么鳞仙? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮笔时,結(jié)果婚禮上棍好,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好借笙,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布扒怖。 她就那樣靜靜地躺著,像睡著了一般业稼。 火紅的嫁衣襯著肌膚如雪盗痒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天盼忌,我揣著相機與錄音,去河邊找鬼掂墓。 笑死谦纱,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的君编。 我是一名探鬼主播跨嘉,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吃嘿!你這毒婦竟也來了祠乃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤兑燥,失蹤者是張志新(化名)和其女友劉穎亮瓷,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體降瞳,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡嘱支,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挣饥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片除师。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扔枫,靈堂內(nèi)的尸體忽然破棺而出汛聚,到底是詐尸還是另有隱情,我是刑警寧澤短荐,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布倚舀,位于F島的核電站,受9級特大地震影響忍宋,放射性物質(zhì)發(fā)生泄漏瞄桨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一讶踪、第九天 我趴在偏房一處隱蔽的房頂上張望芯侥。 院中可真熱鬧,春花似錦、人聲如沸柱查。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唉工。三九已至研乒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間淋硝,已是汗流浹背雹熬。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谣膳,地道東北人竿报。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像继谚,于是被迫代替她去往敵國和親烈菌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359