第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

最簡單的爬蟲案例開發(fā)

前面的學習中我們已經(jīng)簡單了解了一些爬蟲所需的知識,這節(jié)課我們就來做一個小爬蟲來實踐下我們前面所學習的知識,這節(jié)課我們會爬取慕課網(wǎng)首頁所有的課程名稱:

1. 爬取慕課網(wǎng)首頁所有課程名稱

我們第一個爬蟲程序,是來爬取慕課網(wǎng)的首頁的所有課程信息的名字。下面的代碼鎖使用到的技術(shù)有的我們并沒有涉及到,后面的學習中我們會一一講解。這里只是讓大家對爬蟲程序有個大概的了解,熟悉最基本的爬蟲流程,以及對爬蟲處理有一個粗略的印象,同時,也是激發(fā)大家學習的熱情,讓大家對爬蟲不僅停留在理論上,也可以實際操作去加深印象。

1.1 建立 imoocSpider.py 文件

爬蟲文件的命名一定要準確,爬蟲爬取的是哪一個網(wǎng)站就用哪一個網(wǎng)站來進行命名,這樣以后我們寫的爬蟲越來越多會方便管理。

文件創(chuàng)建好之后首先導(dǎo)入 requests 第三方庫和頁面解析工具 BeautifulSoup:

import requests   # requests庫,用來發(fā)送網(wǎng)絡(luò)請求

from bs4 import BeautifulSoup   # 一個解析庫,用來解析網(wǎng)頁結(jié)構(gòu)

Tips:BeautifulSoup 我們在后面會講到,這里只是先用一下。

1.2 定義網(wǎng)址變量

定義網(wǎng)址變量 url,url 中存儲的是我們要爬取的網(wǎng)站,這個小爬蟲中我們要爬取的網(wǎng)站是:http://idcbgp.cn。

url = "http://idcbgp.cn" #慕課網(wǎng)首頁地址

1.3 創(chuàng)建請求頭部

創(chuàng)建請求頭部,因為服務(wù)器會分辨請求的是瀏覽器或者是爬蟲,如果是爬蟲的話會直接斷開請求,導(dǎo)致請求失敗。為了不讓我們的爬蟲暴露,所以要給它加上一層偽裝,這樣服務(wù)器就會認為是瀏覽器在請求了:

headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36'} # 請求頭部

1.4 發(fā)起請求

使用 requests 庫中的 get 方法來進行請求:

r = requests.get(url, headers= headers) # 發(fā)送請求

1.5 解析請求結(jié)果

因為請求的結(jié)果是 HTML 格式的,所以我們使用 BeautifulSoup 來解析我們的請求結(jié)果:

bs = BeautifulSoup(r.text, "html.parser")   # 解析網(wǎng)頁

在返回的請求結(jié)果中,我們想要的數(shù)據(jù)都是在 h3 標簽中包裹著,所以我們使用 BeautifulSoup 查找返回結(jié)果中所有的 h3 標簽并剝離,存儲在變量 mooc_classes 中。

mooc_classes = bs.find_all("h3", class_="course-card-name") # 定位課程信息

1.6 解析數(shù)據(jù)

將每一個 h3 標簽中的課程名稱剝離,并存儲在 class_list 這個列表中去,最后將課程信息存入到文本文件中:

class_list = []

for i in range(len(mooc_classes)):
    title = mooc_classes[i].text.strip()
    class_list.append("課程名稱 : {} \n".format(title)) #格式化課程信息

with open('mooc_classes.txt', "a+") as f: # 將課程信息寫入文本文件中
    for text in class_list:
        f.write(text)

1.7 最終代碼

下面就是我們這個小爬蟲的最終代碼:

實例演示
預(yù)覽 復(fù)制
復(fù)制成功!
import requests   # requests庫,用來發(fā)送網(wǎng)絡(luò)請求

from bs4 import BeautifulSoup   # 這是一個解析庫,用來解析網(wǎng)頁

url = "http://idcbgp.cn" #慕課網(wǎng)首頁地址

headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36'} # 請求頭部

r = requests.get(url, headers= headers) # 發(fā)送請求

bs = BeautifulSoup(r.text, "html.parser")   # 解析網(wǎng)頁

mooc_classes = bs.find_all("h3", class_="course-card-name") # 定位課程信息

class_list = []

for i in range(len(mooc_classes)):
    title = mooc_classes[i].text.strip()
    class_list.append("課程名稱 : {} \n".format(title)) #格式化課程信息

with open('mooc_classes.txt', "a+") as f: # 將課程信息寫入文本文件中
    for text in class_list:
        f.write(text)
運行案例 點擊 "運行案例" 可查看在線運行效果

上面的程序,就是一個最簡單的一個爬蟲程序。最后,我們格式化輸出的樣式,使得輸出格式為 課程名稱+慕課網(wǎng)課程名稱的樣式,最后把結(jié)果保存到一個 TXT 文件里面。最后我們打開 TXT 文件看一下效果:

如下圖所示:

圖片描述

Tips:一般在正式的爬蟲開發(fā)中我們不會把數(shù)據(jù)存儲到文件中去,而是會存儲到數(shù)據(jù)庫中,這樣才能最大限度的保證數(shù)據(jù)不會丟失。

2. 小結(jié)

本小節(jié),通過運用 BeautifulSoup 以及 Requests 實現(xiàn)了一個最簡單的爬蟲程序,關(guān)于它們的學習,我們會在后面的章節(jié)進行詳細論述。這個小程序,只是向大家演示一個最基本的爬蟲的工作流程。細心的同學肯定會發(fā)現(xiàn),我們的代碼量并不是很多,就輕松實現(xiàn)了一個簡單的爬取工作。其實,正式因為使用Python 編寫爬蟲程序的簡單方便,才使得 Python 語言成為了寫爬蟲程序的首選。