Python網絡爬蟲初探

Jamila00T 7年前發布 | 36K 次閱讀 Python Selenium 網絡爬蟲

Python語言是由Guido van Rossum大牛在1989年發明,它是當今世界最受歡迎的計算機編程語言之一,也是一門“學了有用、學了能用、學會能久用”的計算生態語言。

為此,CSDN作為國內最大的IT中文社區,特向廣大Python愛好者開設了Python學習班,幫助大家在學習的道路上少走彎路,事半功倍。在昨天的女神節,我們繼續邀請知名的CSDN博客專家楊秀璋老師,在班級里舉行博客專家會客廳活動。

引用

楊秀璋:Web數據挖掘/軟件工程。研究生階段從事Web數據挖掘和知識圖譜相關的研究,結合Python寫了一些Selenium爬蟲和數據挖掘的算法。從2013年開始在CSDN寫博客,每個月都堅持分享些技術,已完成8個專欄。

下面是楊老師在Python學習班的分享:

非常開心能夠認識大家,和大家簡單交流些Python相關的基礎知識。群里面也有很多大神,我主要結合自己做過的東西,講解一些Python知識,這節課主要是Python爬蟲相關的知識,通過一些實際的簡單應用,提升同學們學習Python的興趣。

因為是微信授課,講得不好的地方,還請大家海涵~

前面我講過:學習Python最重要的地方是通過Python做一些自己喜歡的事情,來提升自己的興趣,從而學好它,包括Python爬蟲、數據分析、自動化測試、網站、GUI游戲等。

網絡爬蟲

網絡爬蟲(Web Spider),又被稱為網頁蜘蛛、網絡機器人,它是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。

網絡爬蟲根據Web數據挖掘的任務可以劃分為三類:

  • Web結構挖掘,主要通過超鏈及HTML網頁結構進行分析爬取;
  • Web內容挖掘,主要爬取網頁內容及知識;
  • Web使用挖掘,主要爬取使用日志,包括按鈕或鏈接點擊的次數等。

常見的Python爬蟲工具包括:正則表達式、XPath技術、Selenium、BeautifulSoup、Scrapy等。這節課講課內容主要是Python安裝Selenium并自動爬取相關信息。

Selenium

Selenium也是一個用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。通常用于自動化測試,這里我們是用來作為簡單的爬蟲。

第一步:安裝selenium

通過cd去到Scripts路徑下,調用pip install selenium進行安裝

注意:調用pip或easy_install安裝第三方庫函數,是常見的Python安裝用法。

第二步:安裝Firefox瀏覽器

第三步:簡單訪問百度頁面

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
data = driver.title
print data

其中:webdriver.Firefox()是調用Firefox瀏覽器,這句話會自動彈出火狐瀏覽器

driver.get(url)是調用瀏覽器后訪問某個url頁面

driver中包含一些屬性和方法,這里只是輸出標題“百度一下,你就知道”

注意:Python導入包的常見語法就是 from xxxx import xxxx

例如:from sklearn.cluster import Kmeans

從機器學習sklearn包的聚類cluster中導入Kmeans聚類的方法

其中Kmeans在cluster中,當然還有其他聚類的方法

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
data = driver.title
print data
driver.save_screenshot('baidu.png')

添加一句代碼,復制下載整個頁面到本地。

Selenium常見元素定位方法和操作

注意driver下包括很多方法和屬性,常見的包括:

這里有各種策略用于定位網頁中的元素(locate elements),你可以選擇最適合的方案,Selenium提供了一下方法來定義一個頁面中的元素:

?find_element_by_id
?find_element_by_name
?find_element_by_xpath
?find_element_by_link_text
?find_element_by_partial_link_text
?find_element_by_tag_name
?find_element_by_class_name
?find_element_by_css_selector

下面是查找多個元素(這些方法將返回一個列表):

?find_elements_by_name
?find_elements_by_xpath
?find_elements_by_link_text 
?find_elements_by_partial_link_text
?find_elements_by_tag_name
?find_elements_by_class_name
?find_elements_by_css_selector

除了上面給出的公共方法,這里也有兩個在頁面對象定位器有用的私有方法。這兩個私有方法是find_element和find_elements。

例如:

對應的文字:

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
data = driver.title
print data
driver.save_screenshot('baidu.png')

通過id定位元素

word = driver.find_element_by_id('u1')
print word.text

重點方法是分析網站DOM樹結構:

這里需要注意,網頁通常都是采用樹形的形式進行存儲的,比如:

我們需要學會右鍵審查元素,分析對應的界面:

這個比較基礎的知識,給大家普及下

題目:

  • 1.學會pip方法安裝各種庫函數,Anaconda調用pip操作。
  • 2.學會Python調用Selenium方法簡單爬取百度首頁。
  • 3.學會Python調用Selenium定位元素,嘗試寫個需要翻頁的爬蟲。
  • 4.學會Python調用Selenium自動登錄操作。
  • 5.(難) 如果實現防止403 Forbidden錯誤,ip地址轉換,模擬登陸等操作。

同時,對講課內容存在什么意見,也歡迎大家反饋給我,相互學習,相互提高。

希望這門課程對你們有所幫助,感覺講得不是很好,希望給多知識來和我交流,謝謝~

感謝CSDN這個平臺。

Python爬蟲

  • urllib等包簡單下載數據
  • Selenium爬蟲=》自動化工具
  • Beautifulsoup爬蟲
  • Dom樹分析
  • 分布式爬蟲,線程

Python數據分析

  • 常見Python數據分析包
  • Sklearn、numpy、scipy、Matplotlib
  • 數據挖掘基礎知識

基本流程

  • Python網站設計
  • Odoo ERP框架

課堂花絮

歡迎希望學習Python語言,熱愛交流技術的同學加入我們的CSDN Python學習班。入群請掃下方群二維碼。

 

 

來自:http://www.iteye.com/news/32206

 

 本文由用戶 Jamila00T 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!