2020年5月16日 星期六

暗黑破壞神3 - 武僧殷娜的真言套裝地城


除了大小秘境以外,

其實暗黑對於各套裝還是有其挑戰任務的,

要通過還是要動點腦筋,

不是靠蠻力就能過關的,

今天的主題就是:

暗黑破壞神3 - 武僧殷娜的真言套裝地城

殷娜的真言套裝地城的位置在卡爾蒂姆市集-積水的下水道,

就是第二章劇情任務中,

在市集救下人們躲藏的那個下水道中能夠找到地城





除了清除怪物以外,

任務有兩個目標,

  • 挑戰期間不能被凍結
  • 釋放元靈之力時10碼內要有10個敵人



為了達成任務,

傷害不須堆疊太高,

故此處將三個寶石與項鍊戒指都卸下



技能放置以減少冷卻時間為主的奕塔之光

卡奈魔方則選用梅希斯密特之劫掠者李奧瑞克的王冠

來幫助減少元靈之力的冷卻時間



最重要的是放上攀冰者

避免武僧被敵人凍結,


簡單講就是必須使用颶風轉

將怪物都聚在一起,

再施放元靈之力即可,

一方面要趕在時間結束前清除所有怪物,

另一方面要想辦法完成施放元靈之力周遭需10人以上,

以上就是今天的主題:

暗黑破壞神3 - 武僧殷娜的真言套裝地城

最後附上過關的遊戲實況供玩家參考:


2020年5月14日 星期四

透過 Selenium 與 BeautifulSoup 進行爬蟲工作


網頁的自動化測試常提到 selenium ,

除了測試以外,

也可透過 selenium 來進行爬蟲工作,

Selenium支援許多瀏覽器,

幫助程式在網站進行各種自動化操作,

今天就來教大家:

透過 selenium 與 BeautifulSoup 進行爬蟲工作

第一個步驟當然是宣告需要的套件:
from bs4 import BeautifulSoup
from selenium import webdriver
import time
如果是使用 Selenium 打開瀏覽器的話,


程式開啟的視窗會顯示目前受到自動測試軟體控制,


  driver = webdriver.Chrome("chrome driver的路徑")  
  driver.get("要測試的網址")
  time.sleep(2)  # 必須等待資料 ready,視情況修改等待秒數
  html = driver.page_source  
  driver.close()  # 關閉瀏覽器
  soup = BeautifulSoup(html, "html.parser")


至此,

其實已經擷取到目標網頁的所有資料,

透過 selenium 或者 BeautifulSoup 提供的方法可以找到需要的資料,

例如:

tag_li = soup.find(attrs={"class": "ivu-table-body"})    
tag_span = tag_li.find_all(["span", "a"])
for x in tag_span :
    print(x.string)

tag_li 是為了找到 class name 為 ivu-table-body 的所有資料,
tag_span 則找出在 ivu-table-body class中 html 標籤為 span 與 a 的資料
最後再將這些資料全部印出

若處理多個網頁會看到 selenium 一直開關瀏覽器,

要解決此問題有兩種方法:

  • 透過參數讓瀏覽器在背景執行
options = webdriver.ChromeOptions() 
options.add_argument('--headless')  
browser = webdriver.Chrome(chrome_options=options,executable_path='chrome driver的路徑')
browser.get(要測試的網址)

  • 使用 pyvirtualdisplay 與 Xvfb 來虛擬顯示器
from pyvirtualdisplay import Display

display = Display(visible=0, size=(800, 600))
display.start()
#加入要執行的程式碼
display.stop()


若是看到如上圖的錯誤訊息,

並非程式出錯,

而是沒有安裝 xvfb :

sudo apt-get install xvfb 


為何已經使用 BeautifulSoup 還要透過 selenium?

原因很簡單,

由於某些資料經過 js 才能顯示,

但使用 requesets 不能保證取得需要的資料,

透過 selenium 才能真正產生資料







2020年5月13日 星期三

在 windows 環境執行 pip install 失敗


在 windows 中使用 pip install 安裝套件失敗,

出現錯誤訊息:

error: Microsoft Visual C++ 14.0 is required



這是由於某些套件包括需要 C/C++編譯器才能安裝,

解決方法也很簡單

前往微軟官方網站

下載Visual Studio 2019社群版來安裝即可

執行安裝程式後,

視窗會詢問要安裝那些套件,

點選使用 C++的桌面開發即可

windows 與 linux 不同,

編譯器並沒有內建於 windows 中,

故在安裝某些套件時候會出現此問題,

這就是今天的主題:

在 windows 環境執行 pip install 失敗

有些時候,

安裝失敗的原因是安裝至 Python 沒有權限修改的位置,

保險起見,

最好是建立虛擬環境後,

在該環境中安裝較為妥當。