大数据——python爬虫
爬蟲(chóng)——首次實(shí)現(xiàn)爬取圖像
前言:早在寫論文期間想利用爬蟲(chóng)技術(shù)爬取圖像相關(guān)圖像數(shù)據(jù),作為大數(shù)據(jù)、深度學(xué)習(xí)的數(shù)據(jù)資源。著手學(xué)習(xí)python,但由于各種原因最終沒(méi)有實(shí)現(xiàn),而是用了最笨的鼠標(biāo)右鍵-保存操作,現(xiàn)在來(lái)彌補(bǔ)這一遺憾。文章主要參考嵐漾憶雨博主的Python爬蟲(chóng)之——爬取妹子圖片。
一、平臺(tái)
本項(xiàng)目實(shí)現(xiàn)平臺(tái)為Win10,Pycharm,這里就不具體介紹了。
二、準(zhǔn)備條件
學(xué)習(xí)python相關(guān)基礎(chǔ)知識(shí)后,發(fā)現(xiàn)距離掌握爬蟲(chóng)技術(shù)還是有一定差距,主要是對(duì)爬蟲(chóng)技術(shù)中涉及到幾個(gè)第三方庫(kù)認(rèn)識(shí)不夠。但是在實(shí)現(xiàn)本項(xiàng)目后發(fā)現(xiàn),如果你的正則表達(dá)學(xué)習(xí)的夠好,那么你完全可以不依靠第三方庫(kù)來(lái)實(shí)現(xiàn)(此處待寫完本博再斟酌)。
準(zhǔn)備的第三方庫(kù)為:
requests??
beautifulsoup4??
這兩個(gè)庫(kù)在這里不做解釋,需大家自己搜資料學(xué)習(xí),因?yàn)楹?jiǎn)單解釋對(duì)于完成本項(xiàng)目顯得徒勞,因此需要深入學(xué)習(xí)。
三、具體實(shí)現(xiàn)過(guò)程
原理就刻板的敘述了,其大體過(guò)程就是使用python編程按照個(gè)人目的,自動(dòng)獲取網(wǎng)頁(yè)上的圖像信息,并保存下來(lái)。
本文爬取的目標(biāo)是:http://www.haijun360.com/news/QZJ/QZJ.html
具體分為以下幾個(gè)階段:
第1、2步可以循環(huán)使用,直到找到所需信息為止。
1.獲取HTML頁(yè)面信息
個(gè)人感覺(jué)爬蟲(chóng)的關(guān)鍵技術(shù)主要集中在第一步,第一步體現(xiàn)了和網(wǎng)站運(yùn)維人員的斗智斗勇。簡(jiǎn)單說(shuō)就是你要把自己的爬蟲(chóng)程序偽裝成瀏覽器,這樣才不會(huì)被對(duì)方服務(wù)器發(fā)現(xiàn)。其中對(duì)于初學(xué)者主要涉及get及post請(qǐng)求兩種,在將自己偽裝成瀏覽器的技術(shù)方面會(huì)涉及到headers,繼而是cookie,然后就是動(dòng)態(tài)token,及驗(yàn)證碼等。
最簡(jiǎn)單的是模擬瀏覽器的方法是,是使用瀏覽器的User-Agent,即headers={'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'},不同的瀏覽器,可能會(huì)不同,可以在網(wǎng)頁(yè)代碼中查看(F12打開(kāi)網(wǎng)頁(yè)代碼),如下圖所示:
#coding=utf-8import requestsurl = 'www.baidu.com'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}html = requests.get(url,headers=header)代碼中的url可以替換為你想爬取的目標(biāo)網(wǎng)站,以上代碼完成了爬蟲(chóng)的第一步(這是爬取沒(méi)有不設(shè)防的網(wǎng)站,也是最簡(jiǎn)單的的)。
接下來(lái)可以采用bs4的Beautifulsoup來(lái)解析響應(yīng)的html.
2.處理HTML頁(yè)面數(shù)據(jù),提取所需信息
解析獲取到的HTML,方法很多,可以將其轉(zhuǎn)換成不同的格式,也可以通過(guò)不同的方法來(lái)解析,如正則表達(dá)、xpath,Beautifulsoup等。這里采用Beautifulsoup,簡(jiǎn)單....
soup = BeautifulSoup(html.text,'html.parser')pages = soup.find_all('table',class_='weiquan')pic_str = page.find('a').attrs['href']這里僅僅截取程序中的一段代碼,使用時(shí)針對(duì)個(gè)人的情況采用Beautiful中的find及find_all函數(shù)。具體使用方法,可以用百度查找,有很多相關(guān)的介紹。
3.保存提取到得到信息
第二步提取到了相關(guān)網(wǎng)頁(yè)的url或者是需要下載的圖片的url,那么可以通過(guò)python3的file函數(shù)來(lái)保存數(shù)據(jù)。
with open(filename,'wb+') as f:f.write(html.content)open的具體參數(shù)可以在相關(guān)文檔上查找。其中的html.content為網(wǎng)頁(yè)提取到的內(nèi)容。
以上是學(xué)習(xí)pyhton爬蟲(chóng)的相關(guān)心得,時(shí)間有限,寫的比較粗糙,其中不免有錯(cuò),歡迎讀者提問(wèn)。
總結(jié)
以上是生活随笔為你收集整理的大数据——python爬虫的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JAVA----爬虫(一)JSoup
- 下一篇: DataLogic 工业串口扫码器Pyt