python實(shí)現(xiàn)爬蟲下載美女圖片
本次爬取的貼吧是百度的美女吧,給廣大男同胞們一些激勵(lì)
在爬取之前需要在瀏覽器先登錄百度貼吧的帳號(hào),各位也可以在代碼中使用post提交或者加入cookie
爬行地址:http://tieba.baidu.com/f?kw=%E7%BE%8E%E5%A5%B3&ie=utf-8&pn=0
#-*- coding:utf-8 -*-
import urllib2
import re
import requests
from lxml import etree
這些是要導(dǎo)入的庫(kù),代碼并沒(méi)有使用正則,使用的是xpath,正則困難的童鞋可以嘗試使用下
推薦各位先使用基本庫(kù)來(lái)寫,這樣可以學(xué)習(xí)到更多
links=[] #遍歷url的地址
k=1
print u'請(qǐng)輸入最后的頁(yè)數(shù):'
endPage=int(raw_input()) #最終的頁(yè)數(shù) (r'\d+(?=\s*頁(yè)) 這是一個(gè)比較通用的正則抓取總頁(yè)數(shù)的代碼,當(dāng)然最后要group
#這里是手動(dòng)輸入頁(yè)數(shù),避免內(nèi)容太多
for j in range(0,endPage):
url='http://tieba.baidu.com/f?kw=%E7%BE%8E%E5%A5%B3&ie=utf-8&pn='+str(j) #頁(yè)數(shù)的url地址
html=urllib2.urlopen(url).read() #讀取首頁(yè)的內(nèi)容
selector=etree.HTML(html) #轉(zhuǎn)換為xml,用于在接下來(lái)識(shí)別
links=selector.xpath('//div/a[@class="j_th_tit"]/@href') #抓取當(dāng)前頁(yè)面的所有帖子的url
#大家可以使用瀏覽器自帶的源碼查看工具,在指定目標(biāo)處查看元素,這樣更快捷
for i in links:
url1="http://tieba.baidu.com"+i #因?yàn)榕廊〉降牡刂肥窍鄬?duì)地址,所以要加上百度的domain
html2=urllib2.urlopen(url1).read() #讀取當(dāng)前頁(yè)面的內(nèi)容
selector=etree.HTML(html2) #轉(zhuǎn)換為xml用于識(shí)別
link=selector.xpath('//img[@class="BDE_Image"]/@src') #抓取圖片,各位也可以更換為正則,或者其他你想要的內(nèi)容
#此處就是遍歷下載
for each in link:
#print each
print u'正在下載%d'%k
fp=open('image/'+str(k)+'.bmp','wb') #下載在當(dāng)前目錄下 image文件夾內(nèi),圖片格式為bmp
image1=urllib2.urlopen(each).read() #讀取圖片的內(nèi)容
fp.write(image1) #寫入圖片
fp.close()
k+=1 #k就是文件的名字,每下載一個(gè)文件就加1
print u'下載完成!'
如果想要爬取其他站點(diǎn)的內(nèi)容,大家可以參考一下
相關(guān)文章
Python實(shí)現(xiàn)更改圖片尺寸大小的方法(基于Pillow包)
這篇文章主要介紹了Python實(shí)現(xiàn)更改圖片尺寸大小的方法,結(jié)合實(shí)例形式分析了Python基于Pillow包更改圖片屬性的相關(guān)技巧,需要的朋友可以參考下2016-09-09
Python實(shí)現(xiàn)Tab自動(dòng)補(bǔ)全和歷史命令管理的方法
這篇文章主要介紹了Python實(shí)現(xiàn)Tab自動(dòng)補(bǔ)全和歷史命令管理的方法,實(shí)例分析了tab自動(dòng)補(bǔ)全的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
解決python中用matplotlib畫多幅圖時(shí)出現(xiàn)圖形部分重疊的問(wèn)題
今天小編就為大家分享一篇解決python中用matplotlib畫多幅圖時(shí)出現(xiàn)圖形部分重疊的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
python Airtest自動(dòng)化測(cè)試工具的的使用
本文主要介紹了python Airtest自動(dòng)化測(cè)試工具的的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
python通過(guò)get,post方式發(fā)送http請(qǐng)求和接收http響應(yīng)的方法
這篇文章主要介紹了python通過(guò)get,post方式發(fā)送http請(qǐng)求和接收http響應(yīng)的方法,涉及Python使用urllib模塊與urllib2模塊實(shí)現(xiàn)get與post發(fā)送數(shù)據(jù)的相關(guān)技巧,需要的朋友可以參考下2015-05-05
Python使用random模塊實(shí)現(xiàn)擲骰子游戲的示例代碼
這篇文章主要介紹了Python使用random模塊實(shí)現(xiàn)擲骰子游戲的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Django 忘記管理員或忘記管理員密碼 重設(shè)登錄密碼的方法
今天小編就為大家分享一篇Django 忘記管理員或忘記管理員密碼 重設(shè)登錄密碼的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Python如何提取csv數(shù)據(jù)并篩選指定條件數(shù)據(jù)詳解
在學(xué)習(xí)python過(guò)程中常遇到一種情況,要讀取.csv文件的數(shù)據(jù),然后取出其中某個(gè)字段,下面這篇文章主要給大家介紹了關(guān)于Python如何提取csv數(shù)據(jù)并篩選指定條件數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-08-08

