Alex大辛苦了! 如果Alex大不介意直接用API抓JSON的話,Yahoo和Tradingview的screener應該都可以簡單抓到您想要的資訊。
YahooYahoo 可以用
https://query2.finance.yahoo.com/v1/finance/screener?crumb=crumb 抓,Request header應該只需要Content-type: application/json和 Cookie:
cookie,而Request payload可以用原來的Request payload改,如下圖所示。(抓Crumb和Cookie會在Yahoo的最後一段說)
URL:

Request header:

Request payload (Payload 的內容可以改,尤其是Size, offset, sortfield 和 sortsize,不過size一次改太大的話會有Error):

結果裡有包含幣別,不過也有許多無用的資訊。目前不知道如何在request時指定想要的資訊。

而且幣別好像不像Yahoo講的都是USD。拿上一張圖的 09II (Porsche) 舉例,Yahoo的response是67.28EUR,LSE上面也顯示 09II 的價格是 67.28EUR。

Crumb和Cookie可以用
https://query2.finance.yahoo.com/v1/test/getcrumb 來取得。Request header應該只需要Accept。Response content 是Crumb,Cookie在測試時只需要用Response header的第一個Set-Cookie就好了。
Request:

Response:
TradingviewTradingview 可以用
https://scanner.tradingview.com/uk/scan?label-product=screener-stock 來抓,Request header 應該只需要 Content-type: application/json,Request payload可以用原來的Request payload改,如下圖所示。
URL:

Request payload (Payload 的內容可以改,尤其是columns, range 和 sortsize):
- columns 指定回傳的內容。舉例來說如果只需要代號,名字,價格和幣別的話,可以用column: ["name","description","close","currency"]
- range指定多少股票被回傳,所以可以用range: [0,(一個夠大的數字)]來一次取得所有股票。

結果有包含代號,股價和幣別。順序應該是依照columns的順序決定的。

希望這對Alex大有幫助!如果有什麼bug也歡迎跟我說。