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網路爬蟲--爬取淘寶聯盟Python爬蟲
- Python Selenium+PhantomJs 爬煎蛋妹子圖PythonJS
- Python爬蟲爬取淘寶,京東商品資訊Python爬蟲
- Python爬蟲實戰:爬取淘寶的商品資訊Python爬蟲
- Python爬蟲,抓取淘寶商品評論內容!Python爬蟲
- [Python3]selenium爬取淘寶商品資訊Python
- Android 淘寶 爬蟲 學習Android爬蟲
- 淘寶商品資訊爬取
- 爬蟲Selenium+PhantomJS爬取動態網站圖片資訊(Python)爬蟲JS網站Python
- Python網路爬蟲之爬取淘寶網頁頁面 MOOC可以執行的程式碼Python爬蟲網頁
- 網路爬蟲 淘寶/天貓獲得淘寶商品評論 API 返回值說明爬蟲API
- Python抓取淘寶IP地址資料Python
- 淘寶API:淘寶/天貓獲得淘寶商品快遞費用API
- Java基於API介面爬取淘寶商品資料JavaAPI
- 淘寶API,按圖搜尋淘寶商品(拍立淘)API
- Appium(Python)驅動手機淘寶AppAPPPython
- 如何高效地利用淘寶API介面獲取商品資料API
- 【教程】淘寶新店旺旺採集軟體爬蟲操作指南爬蟲
- 爬蟲例項-淘寶頁面商品資訊獲取爬蟲
- 淘寶API分享:獲取淘寶商品評論API
- 利用Python爬取必應桌布Python
- [Python3網路爬蟲開發實戰] 7-動態渲染頁面爬取-4-使用Selenium爬取淘寶商品Python爬蟲
- 如何利用機器學習甄別淘寶優質店鋪機器學習
- 淘寶API分享:獲取淘寶商品SKU資訊API
- 淘寶API,按關鍵字搜尋淘寶商品API
- 基於python爬蟲技術對於淘寶的資料分析的設計與實現Python爬蟲
- 使用淘寶映象
- 淘寶放大鏡
- python實現淘寶使用者行為分析Python
- 淘寶商品銷量資料介面,淘寶商品月銷量,淘寶商品總銷量資料介面
- 淘寶/天貓淘寶評論問答列表(item_question_answer-淘寶評論問答列表介面)
- 如何獲得淘寶/天貓淘寶商品詳情 API介面API
- 2018淘寶全球購海淘白皮書
- 淘寶商品詳情資料API介面php java pythonAPIPHPJavaPython
- 使用Python呼叫API介面獲取淘寶商品資料PythonAPI
- python 識別拼多多,天貓,淘寶,京東域名Python
- 利用scrapy建立初始Python爬蟲專案Python爬蟲