我們可以通過python來實現這樣一個簡單的爬蟲功能,把我們想要的代碼爬取到本地。
下面就看看如何使用python來實現這樣一個功能。
起因
深夜忽然想下載一點電子書來擴充一下kindle,就想起來python學得太淺,
什么“裝飾器”啊、“多線程”啊都沒有學到。
想到廖雪峰大神的python教程很經典、很著名。就想找找有木有pdf版的下載,
結果居然沒找到??!CSDN有個不完整的還騙走了我一個積分??!尼瑪?。?/p>
怒了,準備寫個程序直接去爬廖雪峰的教程,然后再html轉成電子書。
過程
過程很有趣呢,用淺薄的python知識,寫python程序,去爬python教程,
來學習python。想想有點小激動……
果然python很是方便,50行左右就OK了。直接貼代碼:
#?coding:utf-8
import?urllib
?
domain?=?'http://www.liaoxuefeng.com'??????#廖雪峰的域名
path?=?r'C:\Users\cyhhao2013\Desktop\temp\\'??#html要保存的路徑
?
#?一個html的頭文件
input?=?open(r'C:\Users\cyhhao2013\Desktop\0.html',?'r')
head?=?input.read()
?
#?打開python教程主界面
f?=?urllib.urlopen("?
001374738125095c955c1e6d8bb493182103fac9270762a000")
home?=?f.read()
f.close()
?
#?替換所有空格回車(這樣容易好獲取url)
geturl?=?home.replace("\n",?"")
geturl?=?geturl.replace("?",?"")
?
#?得到包含url的字符串
list?=?geturl.split(r'em;"><ahref="')[1:]?#=""?強迫癥犯了,一定要把第一個頁面
也加進去才完美=""?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("")[0]
?
??#?要轉一下碼,不然加到路徑里就悲劇了
??title?=?title.decode('utf-8').replace("/",?"?")
?
??#?截取正文
??html?=?html.split(r'')[1]
??html?=?html.split(r'<h4>您的支持是作者寫作最大的動力!</h4>')[0]
??html?=?html.replace(r'src="',?'src="'?+?domain)
?
??#?加上頭和尾組成完整的html
??html?=?head?+?html+""
?
??#?輸出文件
??output?=?open(path?+?"%d"?%?list.index(li)?+?title?+?'.html',?'w')
??output.write(html)
??output.close()
?
</ahref="')[1:]>
簡直,人生苦短我用python啊!
以上所述就是本文的全部內容了,希望大家能夠喜歡。
本文來源:https://www.fushouyu.com/shouyou/201.html
標簽: