工程實踐案例交流坊第二課于2021年6月7日下午兩點半在學院415開課。主講人為我院優秀博士生李伯钊。李伯钊博士從爬蟲技術原理、技術與實戰案例等方面為大家帶來一場精彩的講座。
講座伊始,李伯钊博士向我們介紹了爬蟲的兩種基本方法:第一種為通過解析網頁爬取數據,此部分又分為從靜态網頁與動态網頁獲取數據,靜态網頁獲取數據是數據固定在HTML文件當中,進而從中獲取數據,從動态網頁獲得數據是數據通過請求加載到網頁當中,而請求通常無法監測或存在加密或參數無法推斷數據。第二種為通過官方API接口或攔截請求獲取數據。随後主講人又向同學們介紹了如何分析爬蟲的請求地址的兩種方法:一種是在網頁端用谷歌浏覽器按F12鍵後可以看到發送的請求,安卓手機端的抓包工具使用PacketCapture,手機端APP發送的請求都可以攔截到。

在第二部分,李伯钊博士向我們介紹了爬蟲所需要的基本技能。首先是前端技術,主要包括控制整個頁面的樣式的CSS技術、控制網頁結構框架與數據的HTML技術、管理網頁邏輯的JavaScript技術三項技術。在此部分,主講人提到可以利用樣式選擇器、XPath快速從網頁中定位标簽,獲得我們所需數據的位置。另外,主講人提到爬蟲還需了解Json數據格式,這是請求返回的數據格式。在網絡技術部分,主講人則主要講解了常見網絡請求方式:Post與Get的區别,這對之後的獲取頁面與反爬十分重要。然後,李伯钊博士提到了數據庫技術、數據結構及數據容器,這兩項技術對我們存儲、管理、可視化數據,提高數據管理效率至關重要。最後一項技術為Python代碼基礎與邏輯,主講人向我們推薦了菜鳥教程網站的Python教程,并着重提示大家多線程可以明顯提高爬蟲效率。

課程第三部分為爬蟲框架介紹。在此部分主講人向同學們介紹了request、BeautifulSoup4、Selenium三種方法。Request主要通過header與proxies參數限制請求與登錄IP。BeautifulSoup4為從HTML或XML文件中提取數據的Python庫,可以幫助解析标簽與獲取數據。Selenium可以模拟人的點擊與滾動事件,是爬取動态頁面的重要方法。
在實戰案例部分,李伯钊博士為同學們展示了爬取高德地圖的POI數據、國家統計局網頁爬取區劃代碼數據、安居客與房天下房産數據與知乎動态網頁數據。最後,李伯钊博士為同學們介紹了加上headers(user-agent),随機延時,構建IP代理池、賬号池,模拟浏覽器與圖像識别技術破解驗證碼五種反爬蟲方法。

課程資源獲取方式:掃描下方二維碼或點擊鍊接。
鍊接:https://pan.baidu.com/s/1Lm0mR2RgyEPOrD9h6QHeWg
提取碼:4vit

文本:李瑩
供圖:段芷薏