最近一直在看廖大的教程,但是看著看著,我好無聊啊屑墨,于是就去找了一些煎蛋(簡單)的爬蟲小知識卵史,意外的打開了
新世界的大門。啊哈忧设,這下安逸咯~
煎蛋說下代碼
這個是主程序址晕,可以看到鏈接以及頁碼谨垃,以及啟動函數(shù)
star()
if __name__=='__main__':
url = 'http://jandan.net/ooxx/page-1#comments'
pages = 58
start()
這個是
star()
函數(shù),我們對鏈接進(jìn)行頁碼的增加胳赌,同時通過函數(shù)open_url()
獲取每頁的資源,且通過函數(shù)get_img()
對圖片進(jìn)行本地化保存
def start():
for j in range(1,pages+1):
url2 = url
url2 = url2[:28]+str(j)+url[29:]
print(url2)
get_img(open_url(url2))
print('已經(jīng)爬去取到第'+str(j) +'頁')
這個是
open_url()
函數(shù)
def open_url(url2):
#請求
request = urllib.request.Request(url2)
#響應(yīng)
response = urllib.request.urlopen(request)
data = response.read()
#轉(zhuǎn)碼
data = data.decode('utf-8')
return data
這個是
get_img()
函數(shù),里面saveFile()
這個函數(shù)是對把圖標(biāo)保存到本地牡直。還有這個正則表達(dá)式碰逸,我不會乡小,我抄的满钟,大意我懂胳喷,但是寫不出來- - 不過有講正則的吠撮,你們可以搜下簡書上的正則表達(dá)式文章
def get_img(html):
# 從網(wǎng)頁源代碼中篩選出圖片的鏈接
p = re.compile(r'src="([^"]+\.jpg)"')
imglist = p.findall(html)
for each in set(imglist):
# 拼接鏈接
each = 'https:' + each
print(each)
try:
# 保存到本地
urllib.request.urlretrieve(each, saveFile(each))
except:
print('失敗')
最后一個函數(shù)
saveFile()
def saveFile(path):
#檢測當(dāng)前路徑的有效性
if not os.path.isdir(targetPath):
os.mkdir(targetPath)
#設(shè)置每個圖片的路徑
pos = path.rindex('/')
t = os.path.join(targetPath,path[pos+1:])
return t
當(dāng)然還有頭文件
import urllib.request,re,os
#本地保存路徑 這個寫你們自己的路徑就行了
targetPath = "/Users/wangshengquan/Pictures/PythonImage"
運(yùn)行圖
成果圖
最后是全部代碼
#!/usr/bin/env python3
# _*_ coding: utf-8 _*_
import urllib.request,re,os
#本地保存路徑
targetPath = "/Users/wangshengquan/Pictures/PythonImage"
def saveFile(path):
#檢測當(dāng)前路徑的有效性
if not os.path.isdir(targetPath):
os.mkdir(targetPath)
#設(shè)置每個圖片的路徑
pos = path.rindex('/')
t = os.path.join(targetPath,path[pos+1:])
return t
def open_url(url2):
#請求
request = urllib.request.Request(url2)
#響應(yīng)
response = urllib.request.urlopen(request)
data = response.read()
#轉(zhuǎn)碼
data = data.decode('utf-8')
return data
def get_img(html):
# 從網(wǎng)頁源代碼中篩選出圖片的鏈接
p = re.compile(r'src="([^"]+\.jpg)"')
imglist = p.findall(html)
for each in set(imglist):
# 拼接鏈接
each = 'https:' + each
print(each)
try:
# 保存到本地
urllib.request.urlretrieve(each, saveFile(each))
except:
print('失敗')
def start():
for j in range(1,pages+1):
url2 = url
url2 = url2[:28]+str(j)+url[29:]
print(url2)
get_img(open_url(url2))
print('已經(jīng)爬去取到第'+str(j) +'頁')
if __name__=='__main__':
url = 'http://jandan.net/ooxx/page-1#comments'
pages = 58
start()
Python有著豐富的第三方泥兰,確實(shí)很方便,而且很簡潔题禀,接下來的話鞋诗,如果可以的話,我希望自己能夠繼續(xù)磨煉自己的技術(shù)迈嘹,向tumblr進(jìn)攻~
如果你們看Python實(shí)在無聊的話削彬,可以找些有意思的網(wǎng)站,激發(fā)自己的學(xué)習(xí)欲望江锨,嗯嗯吃警,接下來我要努力提示自己,早日掌握代理以及爬隱藏視頻連接的技術(shù)啄育,早日推到tumblr~
推薦大神