溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python適合寫爬蟲嗎?

發(fā)布時(shí)間:2020-06-23 16:46:00 來源:億速云 閱讀:98 作者:清晨 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)python適合寫爬蟲嗎?,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

抓取網(wǎng)頁(yè)本身的接口

相比與其他靜態(tài)編程語(yǔ)言,如java,c#,C++,python抓取網(wǎng)頁(yè)文檔的接口更簡(jiǎn)潔;相比其他動(dòng)態(tài)腳本語(yǔ)言,如perl,shell,python的urllib2包提供了較為完整的訪問網(wǎng)頁(yè)文檔的API。(當(dāng)然ruby也是很好的選擇)

此外,抓取網(wǎng)頁(yè)有時(shí)候需要模擬瀏覽器的行為,很多網(wǎng)站對(duì)于生硬的爬蟲抓取都是封殺的。這是我們需要模擬user agent的行為構(gòu)造合適的請(qǐng)求,譬如模擬用戶登陸、模擬session/cookie的存儲(chǔ)和設(shè)置。在python里都有非常優(yōu)秀的第三方包幫你搞定,如Requests,mechanize

網(wǎng)頁(yè)抓取后的處理

抓取的網(wǎng)頁(yè)通常需要處理,比如過濾html標(biāo)簽,提取文本等。python的beautifulsoap提供了簡(jiǎn)潔的文檔處理功能,能用極短的代碼完成大部分文檔的處理。

其實(shí)以上功能很多語(yǔ)言和工具都能做,但是用python能夠干得最快,最干凈。Life is short, u need python.

沖最后一句‘Lifeisshort,uneedpython',立馬在當(dāng)當(dāng)上買了本python的書!以前就膜拜過python大牛,一直想學(xué)都扯于各種借口遲遲沒有開始。。

py用在linux上很強(qiáng)大,語(yǔ)言挺簡(jiǎn)單的。

  • NO.1 快速開發(fā)(唯一能和python比開發(fā)效率的語(yǔ)言只有rudy)語(yǔ)言簡(jiǎn)潔,沒那么多技巧,所以讀起來很清楚容易。
  • NO.2跨平臺(tái)(由于python的開源,他比java更能體現(xiàn)"一次編寫到處運(yùn)行"
  • NO.3解釋性( 無須編譯,直接運(yùn)行/調(diào)試代碼)
  • NO.4構(gòu)架選擇太多(GUI構(gòu)架方面 主要的就有 wxPython, tkInter, PyGtk, PyQt 。

知識(shí)點(diǎn)擴(kuò)展:

用python寫爬蟲相關(guān)的實(shí)例:

# coding:utf-8
import urllib

domain = 'http://www.liaoxuefeng.com'   #廖雪峰的域名
path = r'C:\Users\cyhhao2013\Desktop\temp\\' #html要保存的路徑

# 一個(gè)html的頭文件
input = open(r'C:\Users\cyhhao2013\Desktop\0.html', 'r')
head = input.read()

# 打開python教程主界面
f = urllib.urlopen("http://www.需要爬取的網(wǎng)址.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000")
home = f.read()
f.close()

# 替換所有空格回車(這樣容易好獲取url)
geturl = home.replace("\n", "")
geturl = geturl.replace(" ", "")

# 得到包含url的字符串
list = geturl.split(r'em;"><ahref="')[1:]

# 強(qiáng)迫癥犯了,一定要把第一個(gè)頁(yè)面也加進(jìn)去才完美
list.insert(0, '/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000">')

# 開始遍歷url List
for li in list:
 url = li.split(r'">')[0]
 url = domain + url    #拼湊url
 print url
 f = urllib.urlopen(url)
 html = f.read()

 # 獲得title為了寫文件名
 title = html.split("<title>")[1]
 title = title.split(" - 廖雪峰的官方網(wǎng)站</title>")[0]

 # 要轉(zhuǎn)一下碼,不然加到路徑里就悲劇了
 title = title.decode('utf-8').replace("/", " ")

 # 截取正文
 html = html.split(r'<!-- block main -->')[1]
 html = html.split(r'<h5>您的支持是作者寫作最大的動(dòng)力!</h5>')[0]
 html = html.replace(r'src="', 'src="' + domain)

 # 加上頭和尾組成完整的html
 html = head + html+"</body></html>"

 # 輸出文件
 output = open(path + "%d" % list.index(li) + title + '.html', 'w')
 output.write(html)
 output.close()

關(guān)于python適合寫爬蟲嗎?就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI