(二)Python 学习第二天--爬5068动漫图库小案例
生活随笔
收集整理的這篇文章主要介紹了
(二)Python 学习第二天--爬5068动漫图库小案例
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
(注:代碼和網(wǎng)站僅僅是學(xué)習(xí)用途,非營(yíng)利行為,源代碼參考網(wǎng)上大神代碼,僅僅用來(lái)學(xué)習(xí)?)
效果如下:
?
?
?
代碼展示如下
?
# -*- coding:utf-8 -*import urllib2
from bs4 import BeautifulSoup
import urllib
def get_images(page_s, page_e=None) :
if page_e == None :
page_e = page_s
pic_name = 1
for i in range(page_s,page_e+1) :
url = 'http://es.5068.com/list_96_%s.html'%i
header = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
req =urllib2.Request(url, headers=header)
page = urllib2.urlopen(req, timeout=50)
contents = page.read()
soup = BeautifulSoup(contents,'html.parser')
my_pic = soup.find_all('img')
for pic in my_pic :
link = pic.get('src')
name = link[link.rfind('/')+1:]
data = urllib.urlretrieve(link,'images/%s'%name)
#print link, name
get_images(1,3)
學(xué)習(xí)記錄如下:
功能:實(shí)現(xiàn)一個(gè)可以爬取5068圖片網(wǎng)站的爬蟲(chóng)函數(shù),主要使用模塊urllib,urllib2,BeautifulSoup4 實(shí)驗(yàn)環(huán)境:python2.7
1.urllib2是Python的一個(gè)獲取URLs(Uniform Resource Locators)的組件。他以u(píng)rlopen函數(shù)的形式提供了一個(gè)非常簡(jiǎn)單的接口,這是具有利用不同協(xié)議獲取URLs的能力,他同樣提供了一個(gè)比較復(fù)雜的接口來(lái)處理一般情況,例如:基礎(chǔ)驗(yàn)證,cookies,代理和其他。它們通過(guò)handlers和openers的對(duì)象提供。
2.urllib2用一個(gè)Request對(duì)象來(lái)映射你提出的HTTP請(qǐng)求,在它最簡(jiǎn)單的使用形式中你將用你要請(qǐng)求的地址創(chuàng)建一個(gè)Request對(duì)象,通過(guò)調(diào)用urlopen并傳入Request對(duì)象,將返回一個(gè)相關(guān)請(qǐng)求response對(duì)象,在這里我們?cè)O(shè)置對(duì)象名為page,這個(gè)應(yīng)答對(duì)象如同一個(gè)文件對(duì)象,所以你可以在Page中調(diào)用.read()。
3.由于部分網(wǎng)站有反爬機(jī)制,所以設(shè)置header文件,server端會(huì)針對(duì)這些header做檢查,利用本地瀏覽器的User-Agent來(lái)偽裝成瀏覽器發(fā)起的Request
4.Beautiful Soup提供一些簡(jiǎn)單的、python式的函數(shù)用來(lái)處理導(dǎo)航、搜索、修改分析樹(shù)等功能。它是一個(gè)工具箱,通過(guò)解析文檔為用戶(hù)提供需要抓取的數(shù)據(jù),因?yàn)楹?jiǎn)單,所以不需要多少代碼就可以寫(xiě)出一個(gè)完整的應(yīng)用程序。Beautiful Soup自動(dòng)將輸入文檔轉(zhuǎn)換為Unicode編碼,輸出文檔轉(zhuǎn)換為utf-8編碼。你不需要考慮編碼方式,除非文檔沒(méi)有指定一個(gè)編碼方式,這時(shí),Beautiful Soup就不能自動(dòng)識(shí)別編碼方式了。然后,你僅僅需要說(shuō)明一下原始編碼方式就可以了。
Beautiful Soup已成為和lxml、html6lib一樣出色的python解釋器,為用戶(hù)靈活地提供不同的解析策略或強(qiáng)勁的速度。
5.soup = BeautifulSoup(contents,'html.parser'),標(biāo)準(zhǔn)化html內(nèi)容
6.調(diào)用find_all()方法來(lái),獲得所有的img標(biāo)簽
get():來(lái)獲得所有img標(biāo)簽中的src部分
7.python中使用urllib模塊中的urlretrieve方法來(lái)下載資源。
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/guozhengxin/p/6957154.html
總結(jié)
以上是生活随笔為你收集整理的(二)Python 学习第二天--爬5068动漫图库小案例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 组件中props参数的应用
- 下一篇: python_day02 上节课知识点