python利用selenium+phantomJS爬淘寶
作者:黎智煊 叩丁狼高階講師。原創文章,轉載請註明出處。
環境準備:(本次準備環境都是基於window,其他系統都是類似的)
-
準備python基本版本(記得對應好自己的系統版本,32和64系統的區分)
-
anacoda環境(自動包含jupyter notebook,一個利用瀏覽器和python進行互動的環境)
-
一個小小的注意地方
- 就是安裝anconda的時候,到第三步的時候,(就是點選 I agree協議的下一步),選擇"All Users",意思是全域性安裝,可以減少不少的煩惱.
- 然後下一步的advance option,把add path也勾選.
下載phantomJS https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-windows.zip.
然後解壓好上面的軟體到的資料夾,然後在這個資料夾按shift+右鍵,然後選擇"在此處開啟cmd/powershell視窗",然後你輸入jupyter notebook,然後一個基於web互動的python環境在開啟在你面前了,驚不驚喜?意不意外?
-
如下圖所示,你只需要點選右手邊的new,選擇python3就可以開啟第一個python互動了.(然後具體的jupyter notebook用法就不詳說了,可以自行百度)
-
首先來一個小需求,就是去淘寶的特定商品,比如我這個"hdmi轉dp"
- 然後你會發現,用python日常使用的爬蟲工具requests+lxml的etree,是無法正常獲取到價格等資料的,為什麼?因為大多數的電商平臺都是使用ajax,就是在真實的瀏覽器端不斷的重新整理獲取資料,可能是同時獲取到json資料,然後利用js指令碼填資料,又或者是直接在頁面來重新整理等待資料,反正就是有一定反爬的措施.所以,就需要使用模擬瀏覽器的方式去獲取資料了.使用phantomJS,這是一個虛擬的瀏覽器,但是都具備大部分的瀏覽器功能的.然後pyhton使用selenium語法去操作phantomJS就可以了.
python使用selenium呼叫phantomJS.
-
解壓好檔案並且重新命名好.
- 然後就新建一個python互動,填寫這些程式碼,第一步都是匯入selenium和例項化phantomJS:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
##例項化一個phantomJS
##注意匯入的phantomJS路徑,記得是放在一開始說好的位置
driver = webdriver.PhantomJS(executable_path="phantomjs/bin/phantomjs.exe")
如果出現No module named 'selenium',你直接開啟任意一個cmd視窗就可以,輸入pip install selenium就可以了.
如果彈出一個"window防火牆安全警告",把兩個選項都打鉤就可以了.!
- 然後繼續寫一下程式碼:
#然後填入剛剛的淘寶url
driver.get("https://s.taobao.com/search?q=dp%E8%BD%AChdmi&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306")
##然後設定一下模擬瀏覽器的長寬.我這裡假設螢幕是1920*1080的螢幕.!
driver.set_window_size(width=1920,height=1080)
##然後按常理等待2秒鐘左右.
time.sleep(2)
##然後,我們現在嘗試一下利用剛剛的模擬瀏覽器去截圖匯出看看結果.
driver.save_screenshot("taobao.png")
然後你去剛剛的檔案看看是不是有一張圖片顯示出來,對的,就是如下圖所示,價格出來了有沒有.但是有個問題就是,感覺除了上部分能載入完,其餘部分是空白的.
所以進行第四步,模擬滾動.
- 模擬滾動,程式碼如下,我寫成函式來呼叫了,方便呼叫,還有,一下為完整的程式碼:
#匯入selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.PhantomJS(executable_path="phantomjs/bin/phantomjs.exe")
#然後填入剛剛的淘寶url
driver.get("https://s.taobao.com/search?q=dp%E8%BD%AChdmi&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306")
##然後設定一下模擬瀏覽器的長寬.我這裡假設螢幕是1920*1080的螢幕.!
driver.set_window_size(width=1920,height=1080)
##然後按常理等待2秒鐘左右.
#time.sleep(2)
##模擬滾動
def rollView():
global driver
height = 1080
for x in range(12):
jsSQL = "document.body.scrollTop="+str(height)
driver.execute_script(jsSQL)
print(height)
height += 1080
time.sleep(2)
rollView()
##然後,我們現在嘗試一下利用剛剛的模擬瀏覽器去截圖匯出看看結果.
driver.save_screenshot("taobao.png")
然後就能看到完整的整個頁面了!
-
最後的最後,圖片只是用來看的,所以,我們需要把載入好完整頁面的資料再繼續用於分類就可以了.按照上圖,資訊是儲存在這個例項的page_source變數當中,我們可以列印一下,print(driver.page_source),所以,剩下的,你就可以為所欲為.
相關文章
- 利用python編寫爬蟲爬取淘寶奶粉部分資料.1Python爬蟲
- Python Selenium+PhantomJs 爬煎蛋妹子圖PythonJS
- 爬蟲Selenium+PhantomJS爬取動態網站圖片資訊(Python)爬蟲JS網站Python
- Python爬蟲爬取淘寶,京東商品資訊Python爬蟲
- python網路爬蟲--爬取淘寶聯盟Python爬蟲
- Python爬蟲實戰:爬取淘寶的商品資訊Python爬蟲
- [Python3]selenium爬取淘寶商品資訊Python
- Python爬蟲,抓取淘寶商品評論內容!Python爬蟲
- 利用Python爬蟲爬取天氣資料Python爬蟲
- 利用Python爬取必應桌布Python
- 淘寶直播彈幕爬蟲爬蟲
- 手把手教你利用爬蟲爬網頁(Python程式碼)爬蟲網頁Python
- 輕鬆利用Python爬蟲爬取你想要的資料Python爬蟲
- [Python爬蟲] Selenium+Phantomjs動態獲取CSDN下載資源資訊和評論Python爬蟲JS
- 利用python爬取城市公交站點Python
- 利用scrapy建立初始Python爬蟲專案Python爬蟲
- Android 淘寶 爬蟲 學習Android爬蟲
- 爬蟲小專案(一)淘寶爬蟲
- Python爬蟲筆記(4):利用scrapy爬取豆瓣電影250Python爬蟲筆記
- python爬蟲利用requests製作代理池sPython爬蟲
- python爬蟲利用代理IP分析大資料Python爬蟲大資料
- 利用python爬取58同城簡歷資料Python
- 利用python爬取某殼的房產資料Python
- 分享一個簡易淘寶爬蟲爬蟲
- Python3.x:Selenium+PhantomJS爬取帶Ajax、Js的網頁及獲取JS返回值PythonJS網頁
- 【python爬蟲案例】利用python爬取豆瓣電影TOP250評分排行資料!Python爬蟲
- 怎麼利用Python網路爬蟲來提取資訊Python爬蟲
- 個人利用Python爬蟲技術怎麼掙錢Python爬蟲
- Python網路爬蟲之爬取淘寶網頁頁面 MOOC可以執行的程式碼Python爬蟲網頁
- 如何利用ip住宅代理解決python爬蟲遇到反爬措施的問題?Python爬蟲
- 利用Python爬蟲獲取招聘網站職位資訊Python爬蟲網站
- 利用Python爬取攝影網站圖片,切勿商用Python網站
- 利用 Python 爬蟲實現快遞物流資訊查詢Python爬蟲
- 【python爬蟲案例】利用python爬取豆瓣讀書評分TOP250排行資料Python爬蟲
- 【爬蟲】利用Python爬蟲爬取小麥苗itpub部落格的所有文章的連線地址(1)爬蟲Python
- 利用淘寶ip庫限制地區訪問
- 利用Python網路爬蟲抓取網易雲音樂歌詞Python爬蟲
- Python反爬:利用js逆向和woff檔案爬取貓眼電影評分資訊PythonJS