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