簡體   English   中英

有沒有其他方法可以從動態網站中提取數據,而不是使用 selenium?

[英]Is there any other way to extract data from dynamic website, rather than using selenium?

我正在嘗試從網站https://shop.nordstrom.com/中提取所有產品(如襯衫、T 恤等)的數據。 頁面是動態加載的。 我知道我可以將 selenium 與無頭瀏覽器一起使用,但這也是一個耗時的過程並且查找元素,具有奇怪的 ID 和 class 名稱,這也不太有希望。

所以我想查找網絡工具,如果我能找到 API 的路徑,從那里加載數據(XHR 請求)。 但我找不到任何有用的東西。 那么有沒有辦法從網站上獲取數據呢?

如果您不想使用selenium則替代方法是使用 web 解析器(如bs4或僅使用request模塊。

您在找到對API的調用方面是正確的。 XHR請求可以在network選項卡下看到,但出現的大量資源使得理解正在發出的請求變得復雜。 解決此問題的一種簡單方法是使用以下方法:

而不是Network選項卡 go 到console選項卡。 單擊settings圖標,然后僅勾選選項Log XMLHTTPRequests

現在刷新頁面並向下滾動以啟動動態調用。 您現在將能夠以更清晰的方式查看所有XHR的日志。

例如

(索引):29 獲取完成加載:GET "** https://shop.nordstrom.com/api/recs?page_type=home&placement=HP_SALE%2CHP_TOP_RECS%2CHP_CUST_HIS%2CHP_AFF_BRAND%2CHP_FTR&channel=web&bound=24%2C24%2C %2C6&apikey=9df15975b8cb98f775942f3b0d614157&session_id=0&shopper_id=df0fdb2bb2cf4965a344452cb42ce560&country_code=US&experiment_id=945b2363-c75d-4950-b255-194803a3ee2a&category_id=2375500&style_id=0%2C0%2C0%2C0&ts=1593768329863&url=https%3A%2F%2Fshop.nordstrom.com%2F&zip_code=null** ”

向該URL發出 get 請求會得到一堆Json對象。 您現在可以使用此url和其他您可以派生的直接向URL提出請求。

請參閱此處的答案,了解如何將url與請求模塊集成以獲取數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM