Python3 爬蟲快速入門攻略

1、什麼是網絡爬蟲?

 

一、定義:網絡爬蟲(Web Spider),又被稱爲網頁蜘蛛,是一種按照必定的規則,自動地抓取網站信息的程序或者腳本。html

二、簡介:網絡蜘蛛是一個很形象的名字。若是把互聯網比喻成一個蜘蛛網,那麼Spider就是在網上爬來爬去的蜘蛛。網絡蜘蛛是經過網頁的連接地址來尋找網頁,從 網站某一個頁面開始,讀取網頁的內容,找到在網頁中的其它連接地址,而後經過這些連接地址尋找下一個網頁,這樣一直循環下去,直到把這個網站全部的網頁都抓取完爲止。正則表達式

三、爬蟲流程:①先由urllib的request打開Url獲得網頁html文檔——②瀏覽器打開網頁源代碼分析元素節點——③經過Beautiful Soup或則正則表達式提取想要的數據——④存儲數據到本地磁盤或數據庫(抓取,分析,存儲)數據庫

 

 

2、上代碼,直接看註釋瀏覽器

 

 

開發環境:Win10+Python 3.6.1 64bit+PyCharm,自學Python 3爬蟲時的備忘筆記。網絡

 

 

1、爬取簡書網站首頁文章的標題和文章連接多線程

 
  1. from urllib import request分佈式

  2. from bs4 import BeautifulSoup #Beautiful Soup是一個能夠從HTML或XML文件中提取結構化數據的Python庫ide

  3.  
  4. #構造頭文件,模擬瀏覽器訪問函數

  5. url="http://www.jianshu.com"工具

  6. headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}

  7. page = request.Request(url,headers=headers)

  8. page_info = request.urlopen(page).read().decode('utf-8')#打開Url,獲取HttpResponse返回對象並讀取其ResposneBody

  9.  
  10. # 將獲取到的內容轉換成BeautifulSoup格式,並將html.parser做爲解析器

  11. soup = BeautifulSoup(page_info, 'html.parser')

  12. # 以格式化的形式打印html

  13. #print(soup.prettify())

  14.  
  15. titles = soup.find_all('a', 'title')# 查找全部a標籤中class='title'的語句

  16.  
  17. '''

  18. # 打印查找到的每個a標籤的string和文章連接

  19. for title in titles:

  20. print(title.string)

  21. print("http://www.jianshu.com" + title.get('href'))

  22. '''

  23.  
  24. #open()是讀寫文件的函數,with語句會自動close()已打開文件

  25. with open(r"D:\Python\test\articles.txt","w") as file: #在磁盤以只寫的方式打開/建立一個名爲 articles 的txt文件

  26. for title in titles:

  27. file.write(title.string+'\n')

  28. file.write("http://www.jianshu.com" + title.get('href')+'\n\n')

結果:

大概學習了下經過urllib和Beautiful Soup 進行簡單數據爬取的流程,可是那隻適用於一些簡單的、數據量比較小的爬蟲項目,若是須要爬取的數據量比較大的話,以前的方法一定很是緩慢,並且還可能遇到大規模爬蟲IP被網站封禁的狀況,由於好的網站會有反爬蟲策略。多線程和分佈式爬蟲、我剛整理了一套2018最新的0基礎入門和進階教程,無私分享,加Python學習q-u-n :二二七,四三五,四五零 便可獲取,內附:開發工具和安裝包,以及系統學習路線圖

 

IP代理、處理驗證碼、模擬登錄、內置瀏覽器引擎爬蟲,還有注意配合反爬蟲措施比較少的移動APP端抓取(抓包工具Fiddler)等等問題。

相關文章
相關標籤/搜索