爬妹子圖

利用 BeautifulSoup + Requests 爬取 妹子圖

import requests
import re, time, os
from bs4 import BeautifulSoup

urls = ["http://www.meizitu.com/a/list_1_{}.html".format(i) for i in range(1,31)]   #目前共92頁

headers1 = {'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding':'gzip, deflate, sdch',                               #妹子圖的請(qǐng)求頭
'Accept-Language':'zh-CN,zh;q=0.8',
'Cache-Control':'max-age=0',
'Connection':'keep-alive',
'Cookie':'bdshare_firstime=1477909035413; Hm_lvt_a01ff1f91d0b936673f038453940cdb9=1477909035,1477909103; safedog-flow-item=F05CF6535242D231B430A78792F9D78D; CNZZDATA30056528=cnzz_eid%3D318212343-1488381613-null%26ntime%3D1488449174',
'Host':'www.meizitu.com',
'If-Modified-Since':'Tue, 21 Feb 2017 15:45:20 GMT',
'If-None-Match':"6470d82598cd21:196c",
'Referer':'http://www.meizitu.com/a/list_1_1.html',
'pgrade-Insecure-Requests':'1',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}

headers2 = {'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding':'gzip, deflate, sdch',                              #圖片下載鏈接在另一個(gè)網(wǎng)站,有反爬硕并,所以另建一個(gè)請(qǐng)求頭
'Accept-Language':'zh-CN,zh;q=0.8',
'Cache-Control':'max-age=0',
'Connection':'keep-alive',
'Cookie':'__jsluid=a0a09999bc1cd95bb78e3cfc51c0b9d8; safedog-flow-item=2676F109CF0E6A11F1AB1ADC63D76F97',
'Host':'mm.howkuai.com',
'If-Modified-Since':'Sat, 19 Nov 2016 20:12:20 GMT',
'If-None-Match':"16808f3ba142d21:1527",
'Upgrade-Insecure-Requests':'1',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}

def Get_url(url):
    links = []
    titles = []
    web_data = requests.get(url, headers=headers1)
    web_data.encoding = 'gb2312'                    #改為該網(wǎng)站編碼
    soup = BeautifulSoup(web_data.text, 'lxml')
    picture_websites_location = soup.find_all("div", class_="pic")  #首頁的鏈接存在這
    for i in range(len(picture_websites_location)):
        links.append(picture_websites_location[i].find_all(target="_blank")[0]["href"]) #該內(nèi)容的鏈接全在這個(gè)標(biāo)簽內(nèi)法焰,find_all返回列表,所以應(yīng)該用list[0]操作
        # links.append(picture_websites_location[i].find_all(href=re.compile(".*?")).get("href"))  與上面一樣
    for i in range(len(picture_websites_location)):
        titles.append(picture_websites_location[i].find_all("img")[0]["alt"].strip('<b>').strip('</'))
        # 有的標(biāo)題含有<b>...</b>,連用兩次strip去除倔毙,前面過程與取內(nèi)容鏈接一致
    return links, titles            #返回內(nèi)容鏈接與內(nèi)容標(biāo)題

def Get_picture_link(website, filename):            #傳入內(nèi)容網(wǎng)址埃仪,即為圖片所在網(wǎng)址
    pictures = []
    titles = []
    os.mkdir(filename)              #用傳入的內(nèi)容標(biāo)題創(chuàng)建文件夾目錄,儲(chǔ)存對(duì)應(yīng)內(nèi)容的圖片
    time.sleep(4)                   #防止請(qǐng)求頻繁被封IP
    web_data = requests.get(website, headers= headers1)
    web_data.encoding = 'gb2312'
    soup = BeautifulSoup(web_data.text, 'lxml')
    links = soup.find_all(id = "picture")              #返回實(shí)際為只有列表[0]陕赃,因?yàn)閜icture這標(biāo)簽在里面只有一個(gè)
    links_real = links[0].find_all("img")              #圖片的鏈接都存在列表[0]里卵蛉,先排除多余標(biāo)簽再取出圖片地址
    for i in range(len(links_real)):
        pictures.append(links_real[i]["src"])
    for i in range(len(links_real)):
        titles.append(links_real[i]["alt"])
    for i in range(len(pictures)):
        time.sleep(2)
        picture = requests.get(pictures[i], headers=headers2)   #用requests下載圖片
        if picture.status_code == 200:
            a = os.getcwd()
            path = a + '\\' +filename +  '\\'+ titles[i] + '.jpg'  #對(duì)應(yīng)的圖片放到對(duì)應(yīng)的文件夾里
        open(path, 'wb').write(picture.content)
    print('完成了一個(gè)文件夾')


if __name__ == '__main__':
    for url in urls:
        pic, tit = Get_url(url)
        for i in range(len(pic)):
            Get_picture_link(pic[i], tit[i])

    #大網(wǎng)址——提取——>圖片所在網(wǎng)址>——提取——圖片鏈接


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市么库,隨后出現(xiàn)的幾起案子傻丝,更是在濱河造成了極大的恐慌,老刑警劉巖诉儒,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件葡缰,死亡現(xiàn)場離奇詭異,居然都是意外死亡忱反,警方通過查閱死者的電腦和手機(jī)泛释,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來温算,“玉大人怜校,你說我怎么就攤上這事∽⒏停” “怎么了茄茁?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蔓搞。 經(jīng)常有香客問我胰丁,道長,這世上最難降的妖魔是什么喂分? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任锦庸,我火速辦了婚禮,結(jié)果婚禮上蒲祈,老公的妹妹穿的比我還像新娘甘萧。我一直安慰自己,他們只是感情好梆掸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布扬卷。 她就那樣靜靜地躺著,像睡著了一般酸钦。 火紅的嫁衣襯著肌膚如雪怪得。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音徒恋,去河邊找鬼蚕断。 笑死,一個(gè)胖子當(dāng)著我的面吹牛入挣,可吹牛的內(nèi)容都是我干的亿乳。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼径筏,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼葛假!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起滋恬,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤聊训,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后恢氯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體魔眨,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡昆淡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年请垛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奏瞬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡指黎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出州丹,到底是詐尸還是另有隱情醋安,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布墓毒,位于F島的核電站吓揪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏所计。R本人自食惡果不足惜柠辞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望主胧。 院中可真熱鬧叭首,春花似錦、人聲如沸踪栋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夷都。三九已至眷唉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冬阳。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國打工蛤虐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人摩泪。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓笆焰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親见坑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嚷掠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

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

  • 前一篇寫了基礎(chǔ)的爬蟲,這篇我們就來爬圖片保存下來荞驴。?環(huán)境如上一篇scrapy 爬電影 抓取數(shù)據(jù) Step1 首先還...
    EasonDev閱讀 355評(píng)論 0 0
  • 利用 selenium + PhantomJS 爬取 妹子圖 By The Way : 營養(yǎng)跟不上了
    交易狗二哈閱讀 751評(píng)論 0 0
  • 有個(gè)網(wǎng)站 http://www.meizitu.com/ 里面有很多妹子不皆,所以就動(dòng)了心思,是不是可以爬到我的本地來...
    豪哥的世界閱讀 753評(píng)論 3 0
  • 聲明:本文講解的實(shí)戰(zhàn)內(nèi)容熊楼,均僅用于學(xué)習(xí)交流霹娄,請(qǐng)勿用于任何商業(yè)用途! 一鲫骗、前言 強(qiáng)烈建議:請(qǐng)?jiān)陔娔X的陪同下犬耻,閱讀本文...
    Bruce_Szh閱讀 12,704評(píng)論 6 28
  • 利用 BeautifulSoup + Requests 爬取 煎蛋網(wǎng) 妹子圖 一、爬煎蛋網(wǎng)一頁圖片 此爬蟲只能爬取...
    交易狗二哈閱讀 1,034評(píng)論 0 2