從網站提取數據的需求正在增加。當我們進行數據相關項目,如價格監控,業務分析或新聞聚合器時,我們總是需要記錄來自網站的數據。但是,逐行複制和粘貼數據已經過時。在本文中,我們將教你如何成為從網站中提取數據的“內部人員”,即使用python進行網頁抓取。
第0步:簡介
Web抓取技術可以幫助我們將HTML非結構化數據轉換為電子表格或數據庫中的結構化數據。除了使用python編寫代碼之外,使用API訪問網站數據或使用Octoparse等數據提取工具也是網頁抓取的其他選擇。
對於像Airbnb或Twitter這樣的大型網站,他們會為開發人員提供API來訪問他們的數據。 API代表應用程序編程接口,它是兩個應用程序相互通信的訪問。對於大多數人來說,API是獲取網站自身提供的數據的最佳方法。
但是,大多數網站沒有API服務。有時即使他們提供API,您可能獲得的數據也不是您想要的。因此,編寫python腳本來構建Web爬蟲是另一個強大而靈活的解決方案。
那麼我們為什麼要使用python而不是其他語言呢?
靈活性:眾所周知,網站更新迅速。不僅內容而且網絡結構都會經常變化。 Python是一種易於使用的語言,因為它具有動態可輸入性和高效性。因此,人們可以輕鬆地更改代碼並跟上Web更新的速度。
功能強大:Python擁有大量成熟的庫。例如,requests,beautifulsoup4可以幫助我們獲取URL並從網頁中提取信息。 Selenium可以通過讓網絡抓取工具模仿人類瀏覽行為來幫助我們避免一些反刮技術。此外,re,numpy和pandas可以幫助我們清理和處理數據。
現在讓我們開始使用Python進行網絡抓取之旅!
第1步:導入Python庫
在本教程中,我們將向您展示如何從Yelp中刪除評論。 我們將使用兩個庫:bs4中的BeautifulSoup和urllib中的請求。 這兩個庫通常用於使用Python構建Web爬網程序。 第一步是在Python中導入這兩個庫,以便我們可以使用這些庫中的函數。
第2步:從網頁中提取HTML
我們需要從“https://www.yelp.com/biz/milk-and-cream-cereal-bar-new-york?osq=Ice+Cream”中提取評論。 首先,讓我們將URL保存在名為URL的變量中。 然後我們可以訪問此網頁上的內容,並通過在請求中使用urlopen()函數將HTML保存在“ourUrl”中。
然後我們應用BeautifulSoup來解析頁面。
現在我們有了“湯”,這是本網站的原始HTML,我們可以使用一個名為prettify()的函數來清理原始數據並打印它以在“湯”中查看HTML的嵌套結構。
第3步:找到並抓取評論
接下來,我們應該在此網頁上找到HTML評論,提取並存儲它們。 對於網頁中的每個元素,它們始終具有唯一的HTML“ID”。 要檢查他們的ID,我們需要在網頁上檢查它們。
點擊“Inspect element”(或“Inspect”,取決於不同的瀏覽器)後,我們可以看到評論的HTML。
在這種情況下,評論位於名為“p”的標籤下。 因此,我們將首先使用名為find_all()的函數來查找這些評論的父節點。 然後在循環中的父節點下找到標記為“p”的所有元素。 找到所有“p”元素後,我們將它們存儲在一個名為“review”的空列表中。
現在我們從該頁面獲得所有評論。 讓我們看看我們提取了多少評論。
第4步:清理評論
您必須注意到,在每次審核開始時仍有一些無用的文本,例如“”,評論中間的“”和“</ p>”每次審查結束。
“”代表單線休息。我們在評論中不需要任何換行符,因此我們需要刪除它們。此外,“”和“</ p>”是HTML的開頭和結尾,我們還需要刪除它們。
最後,我們用少於20行的代碼成功地獲得了所有乾淨的評論。
這裡只是一個來自Yelp的20條評論的演示。但在實際情況下,我們可能需要面對很多其他情況。例如,我們需要像分頁這樣的步驟轉到其他頁面並提取該商店的其餘評論。或者我們還需要刪除其他信息,如評論者姓名,評論者位置,評論時間,評級,登記......
要實現上述操作並獲取更多數據,我們需要學習更多函數和庫,例如selenium或正則表達式。花更多的時間在網絡抓取中應對挑戰將會很有趣。
但是,如果您正在尋找一些簡單的網頁抓取方法,Octoparse可能是您的解決方案。 Octoparse是一個功能強大的網絡抓取工具,可以幫助您輕鬆地從網站獲取信息。查看本教程,了解如何使用Octoparse從Yelp中獲取評論。當您需要為您的業務或項目提供強大的網絡抓取工具時,請隨時與我們聯繫!
作者:Jiahao WU
文章來源:https://www.octoparse.com/blog/web-scraping-using-python?datacamp?ithelp
文章來源:https://www.octoparse.com/blog/web-scraping-using-python?datacamp?ithelp
大家一起來評論吧!