如何爬取icourse163 中國慕課上課程信息(上),


中國大學MOOC網上有着特別完善的課程信息,我覺得這是一份可以讓我們充分利用的資源

那么,接下來的問題就是我們該如何爬取這里的資源

選擇其中的計算機課程進行嘗試

import requests
from bs4 import BeautifulSoup

import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')

r=requests.get('https://www.icourse163.org/channel/3002.htm')
r.encoding=r.apparent_encoding
result=r.text
bs=BeautifulSoup(result,'html.parser')
print(bs.prettify())

按理說可以通過上述代碼就可以很容易地爬取出該頁面的源代碼,但最后發現這里面沒有正常的顯示課程信息。因為這些課程列表信息是通過js加載的數據,js需要瀏覽器才能加載出來,像上面的普通請求只能得到渲染前的源代碼。那么現在就需要我們給他一個瀏覽器渲染之后再去請求,爬取信息。

關鍵便是如何給它添加一個瀏覽器渲染。

在網上找了一下后發現,selenium+phantomjs便是一個很好的無頭瀏覽器。這需要在python中安裝下selenium

輸入指令:pip install selenium  即可

然后在官方下載一個phantomjs就行。

 

 

這兩個工具安裝好后就可以直接使用,再去爬取該網頁的源代碼,在這里面便有了課程列表的信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM