python数据采集框架_20190715《Python网络数据采集》第 1 章
《Python網(wǎng)絡(luò)數(shù)據(jù)采集》7月8號(hào)-7月10號(hào),這三天將該書精讀一遍,腦海中有了一個(gè)爬蟲大體框架后,對(duì)于后續(xù)學(xué)習(xí)將更加有全局感。
此前,曾試驗(yàn)看視頻學(xué)習(xí),但是一個(gè)視頻基本2小時(shí),全部拿下需要30多個(gè)視頻,如此看來每天學(xué)習(xí)一個(gè)視頻時(shí)間都是非常吃力的,且都屬于被動(dòng)輸入,尤其是在早上學(xué)習(xí)視頻容易犯困。
故此,及時(shí)調(diào)整學(xué)習(xí)策略,采用?“電子書+廖雪峰網(wǎng)頁教程+實(shí)操+Google+咨詢程序員+每日總結(jié)歸納”的主動(dòng)學(xué)習(xí)模式,如此更加高效,更加容易把控進(jìn)度!
學(xué)習(xí)爬蟲,一者興趣,致力于借此興趣驅(qū)動(dòng)力掌握編程思維,進(jìn)而讓自己有能夠?qū)⑾敕ㄗ龀僧a(chǎn)品的的技能;二者,為了一個(gè)近在眼前的爬蟲商業(yè)化機(jī)遇,更希望借此為自己增加一個(gè)收入來源。
1. 爬蟲常見得異常及處理方法,用一個(gè)簡(jiǎn)單得爬蟲代碼解釋,核心知識(shí)點(diǎn):
(1)異常一:網(wǎng)頁在服務(wù)器上不存在(或者獲取頁面時(shí),出現(xiàn)錯(cuò)誤)。該異常發(fā)生時(shí),程序會(huì)返回HTTP錯(cuò)誤,如“404 Page Not Found” "500 Internet Server Error"等。
(2)異常二:服務(wù)器不存在(即,鏈接打不開,或者URL鏈接寫錯(cuò)了),這時(shí),urlopen會(huì)返回一個(gè)None對(duì)象。
Ps:有的時(shí)候,網(wǎng)頁已經(jīng)從服務(wù)器成功獲取,如果網(wǎng)頁上的內(nèi)容并非完全是我們期望的那樣,也會(huì)出現(xiàn)異常。
1 from urllib.request importurlopen
2 from bs4 importBeautifulSoup
3
4 try:
5 html = urlopen("http://pythonscraping.com/pages/page1.html")
6 # print(html.read())
7 # 檢測(cè):網(wǎng)頁在服務(wù)器上是否存在(或者獲取頁面時(shí)是否出現(xiàn)錯(cuò)誤)
8 exceptHTTPError as e:
9 print(e)
10 else:
11 bsobj =BeautifulSoup(html.read())
12 # 檢測(cè):服務(wù)器是否存在(就是說鏈接能否打開,或者是URL鏈接寫錯(cuò)了)
13 if html isNone:
14 print("URL is not found")
15 else:
16 print(bsobj.h1)
17 # print(bsobj.title)
1 # 以上代碼更改為檢測(cè)異常更全面、可讀性更強(qiáng)的代碼,如下:
2 from urllib.request importurlopen
3 from bs4 importBeautifulSoup
4
5 defgetTitle(url):
6 try:
7 html =urlopen(url)
8 exceptHTTPError as e:
9 returnNone
10 try:
11 bsobj =BeautifulSoup(html.read())
12 title =bsobj.body.h1
13 exceptAttributeError as e:
14 return
15 returntitle
16
17 title1 = getTitle("http://pythonscraping.com/pages/page1.html")
18 if title1 ==None:
19 print("Title could not be found")
20 else:
21 print(title1)
該部分代碼執(zhí)行時(shí),出現(xiàn)報(bào)錯(cuò):
indentationerror: unexpected indent process finished with exit code 1
Google發(fā)現(xiàn),Tag和Space不能混合使用。原始第五行,def被tab縮進(jìn),后刪除該tab縮進(jìn),問題解決。該問題具體原因,仍需要仔細(xì)查明!!!
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的python数据采集框架_20190715《Python网络数据采集》第 1 章的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: delphi 读取ini所有项_财务机器
- 下一篇: 我用python是什么梗_Python中