首頁  >  文章  >  後端開發  >  Python3 基礎爬蟲簡介

Python3 基礎爬蟲簡介

一个新手
一个新手原創
2017-09-25 10:53:482387瀏覽


python3 基礎爬蟲入門心得

第一次寫博客,有點緊張,不喜勿噴。
如果有不足之處,希望讀者指出,本人一定要改正。

学习爬虫之前你需要了解(个人建议,铁头娃可以无视):
- **少许网页制作知识,起码要明白什么标签...**
- **相关语言基础知识。比如用java做爬虫起码会用Java语言,用python做爬虫起码要会用python语言...**
- **一些网络相关知识。比如TCP/IP、cookie之类的知识,明白网页打开的原理。**
- **国家法律。知道哪些能爬,哪些不能爬,别瞎爬。**

如標題,本文所有程式碼使用python3.6.X。

首先,你需要安裝(pip3 install xxxx 一下就OK了)

  1. requests 模組

  2. ##BeautifulSoup 模組(或lxml 模組)

這兩個函式庫功能十分強大,requests用於發送網頁請求和開啟網頁,beautifulsoup和lxml則用於解析內容,提取你想要的東西。 BeautifulSoup偏向正規表示式,lxml則偏向XPath。因為本人用beautifulsoup庫比較習慣,這篇文章主要應用beautifulsoup庫,lxml不做太多贅訴。 (用之前建議先看文件)

爬蟲的主要結構:

  • 管理員:管理你要爬取的位址。

  • 下載器:下載網頁資訊。

  • 篩選器:從下載到的網頁資訊中篩選出你所需要的內容。

  • 儲存器:把下載到的東西存到你想存的地方。 (根據實際情況,可有可無。)

在我所接觸到的所有的網路爬蟲基本上都逃不出這個結構,大到sracpy小到urllib。這個結構知道就好,不用死記,知道它的好處就是在寫的時候起碼能知道自己在寫什麼,出BUG的時候知道在哪裡動手DEBUG。

前面廢話有點多….正文如下:

本文以爬取https://baike.baidu.com/item/Python(python的百度詞條為例):

(因為截圖太麻煩..這將是本文唯一一張圖)

想要爬取python的字條內容,首先,你要知道你所要爬取的網址:

url = 'https://baike.baidu.com/item/Python'

因為只需要爬這一頁,管理器OK。

 html = request.urlopen(url)

呼叫一下urlopen()函數,下載器OK

    Soup = BeautifulSoup(html,"html.parser")
    baike = Soup.find_all("p",class_='lemma-summary')

利用Beautifulsoup庫裡的beautifulsoup函數合find_all函數,解析器OK

在這裡說一句,find_all函數的返回值是一個列表。所以輸出時要循環列印。

由於本例不需要儲存,直接列印就行,所以:

for content in baike:    
print (content.get_text())

get_text()的作用是提取出標籤裡的文字。

把上面的程式碼整理一下:

import requestsfrom bs4 import BeautifulSoupfrom urllib import requestimport reif __name__ == '__main__':
    url = 'https://baike.baidu.com/item/Python'
    html = request.urlopen(url)
    Soup = BeautifulSoup(html,"html.parser")
    baike = Soup.find_all("p",class_='lemma-summary')    for content in baike:        print (content.get_text())

百度百科的詞條就出來了。

類似的方法也能爬一些小說、圖片、頭條之類的,絕不只限於詞條。
如果關掉這篇文章你也能寫出這個程序,那恭喜你,入門了。記住,千萬別背代碼。

驟都省略了…整個程序有點粗糙…見諒啊….溜了溜了( ̄ー ̄)……

以上是Python3 基礎爬蟲簡介的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn