天天看點

教你如何在10分鐘内學會簡單的爬蟲首先,聲明:我是一個正在學習爬蟲的新手,請各位大佬,多多指教!

首先,聲明:我是一個正在學習爬蟲的新手,請各位大佬,多多指教!

Hi , domo

爬蟲emmm,是一個很有趣的東西(目前,我是這樣認為的)

相信對于大多數像我一樣的新手沒有什麼經驗,對于網上的爬蟲教程卻又感到非常的複雜難懂。今天我來說一個比較簡單爬蟲方法。

工具:Python 3.x ,pycharm

庫:lxml、request

爬取的界面是;http://www.cug.edu.cn/index/ddyw.htm(地大要聞)

首先要做的是什麼呢?

對,當然是對頁面的解析(Ctrl+shift+C),

打開頁面,利用Ctrl+shift+C,你會得到這個

教你如何在10分鐘内學會簡單的爬蟲首先,聲明:我是一個正在學習爬蟲的新手,請各位大佬,多多指教!

看到左邊的了麼?接下來右鍵點選copy Xpath,分析一下路徑

了解了路徑,接下來就開始提取我們要的内容了,首先是每條新聞的标題即li标簽下面的a标簽的内容,還有每條新聞的位址即a标簽的href屬性的内容。

話不多說,上代碼

建立一個函數,

def cugspider(url):
    r = requests.get(url)
    r.encoding = "utf-8"

    htm = etree.HTML(r.text)
    result = htm.xpath('//li[@class="list_item"]/a')
    href = htm.xpath('//li[@class="list_item"]/a/@href')      

利用get方法擷取網頁,可以用

print(r.status_code)      

檢視網頁的狀态如果是200,恭喜可以通路。

接下來用lxml的etree.HTML将擷取的網頁包裹起來,就以用xpath來尋找你要的内容了。

如上,我們擷取的兩個路徑分别得到了新聞的标題和内容,是不是很簡單。對的,簡單的爬蟲就是這麼簡單哈哈哈。

我這裡其實就是講一下爬蟲的思想和通過簡單的庫來實作。有興趣的同學快去試試吧。

難點還是在對頁面的解析,有的網站設定了反爬蟲,對于反爬蟲我目前也在學習,大家一起進步吧!

詳細代碼見下面:

代碼:https://github.com/CreNeil/CUG_NEWS/blob/master/cug_spiders.py