大學生課表製作 2 抓取課程表資料

2021-08-04 20:51:18 字數 2034 閱讀 7443

beautifulsoup4 是乙個可以從html或xml檔案中提取資料的python庫.它能夠通過我們喜歡的轉換器實現慣用的文件導航,查詢,修改文件的方式.

安裝 beautiful soup

如果你用的是新版的debain或ubuntu,那麼可以通過系統的軟體包管理來安裝:

$ apt-get install python-bs4
beautiful soup 4 通過pypi發布,所以如果你無法使用系統包管理安裝,那麼也可以通過 easy_install 或 pip 來安裝.包的名字是 beautifulsoup4 ,這個包相容python2和python3.

$ easy_install beautifulsoup4

$ pip install beautifulsoup4

(在pypi中還有乙個名字是 beautifulsoup 的包,但那可能不是你想要的,那是 beautiful soup3 的發布版本,因為很多專案還在使用bs3, 所以 beautifulsoup 包依然有效.但是如果你在編寫新專案,那麼你應該安裝的 beautifulsoup4 )

$ 

python setup.py install

安裝完成後的問題

beautiful soup發布時打包成python2版本的**,在python3環境下安裝時,會自動轉換成python3的**,如果沒有乙個安裝的過程,那麼**就不會被轉換.

如果**丟擲了 importerror 的異常: 「no module named htmlparser」, 這是因為你在python3版本中執行python2版本的**.

如果**丟擲了 importerror 的異常: 「no module named html.parser」, 這是因為你在python2版本中執行python3版本的**.

如果遇到上述2種情況,最好的解決方法是重新安裝beautifulsoup4.

如果在root_tag_name = u』[document]』**處遇到syntaxerror 「invalid syntax」錯誤,需要將把bs4的python**版本從python2轉換到python3. 可以重新安裝bs4:

安裝解析器

beautiful soup支援python標準庫中的html解析器,還支援一些第三方的解析器,其中乙個是 lxml .根據作業系統不同,可以選擇下列方法來安裝lxml:

$ apt-get install python-lxml

$ easy_install lxml

$ pip install lxml

接下來,我們要開始抓取課程表資料了。我們之前已經模擬登入成功了,並且保留了會話,這意味著我們不用管理cookie就可以類似於登入一樣去請求我們的課程表。

我們開啟課程表:

通過分析請求可以看到我們的請求資料,由此我們也用乙個字典來儲存這些請求**:

timetable =

我們只要把這個傳送到查詢頁面就可以獲取了。那麼接下來就要用bs4來進行html分析了,因為很顯然,不是網頁每乙個元素我們都要的。通過仔細分析原始碼我們可以看到,第一列的課程名稱,都是有規律的

我們就根據這個id來構建乙個正規表示式:p_classname = re.compile(「dg_pthasselect__+\w+_bl3」)

最後的**核心其實也就這一句:

soup(id = p_classname)

然後我們第一列就抓好了。以此類推我們抓第二列第三列。

最後整個課表都抓好了。接下來我們將進行課表抓取之後的處理

我的大學生活2

早上被噩夢驚醒翻來覆去再無法入睡了,就起來寫寫博。繼續昨天的故事。軍訓的副排長不乏稱之為我大學生涯的起步或鋪墊。結束軍訓後的學生會招聘,我得到了系上院上老幹事們很好的評價並最終選擇了院學習部 真正磨練我的組織。班裡當上了學習委員,雖然差點落選這可以讓人理解,再怎麼說得好聽再怎麼優秀也不會舒服46個男...

課程設計 大學生資訊管理系統

下面是解答 完成80 了,程式都能執行,還有一點功能沒有加進去,自己加吧,另外寫的比較匆忙,肯定有不完善的地方,希望完善哦!include include include include include typedef struct students student void menu void s...

大學生活常用學習卡片製作工具

製作學習卡片是一種很有效的學習方式,這裡為大家推薦這款簡單實用的學習卡片製作工具。flashcard hero可以通過答案覆蓋 多項選擇測試 鍵入答案三種模式將學習內容製作成學習卡,幫助大家更好的記憶和學習知識點內容。製作自己的快閃儲存器卡,並從測試準備中抽出壓力。flashcard hero跟蹤你...