0
我試圖抓取電子商務目錄,其中使用Ajax響應加載產品數據。在Ruby中獲取完整的HTML頁面(包括AJAX響應)
因此,使用獲取請求的響應內容不完整(部分數據)。
我使用Ruby的默認HTTP庫來獲取& Nokogiri
進行解析。
有什麼辦法,我可以發起請求&記錄一些延遲後的迴應?
我試圖抓取電子商務目錄,其中使用Ajax響應加載產品數據。在Ruby中獲取完整的HTML頁面(包括AJAX響應)
因此,使用獲取請求的響應內容不完整(部分數據)。
我使用Ruby的默認HTTP庫來獲取& Nokogiri
進行解析。
有什麼辦法,我可以發起請求&記錄一些延遲後的迴應?
你需要一個libary/method /方法,它有一個JavaScript引擎來執行javascript,因爲使用了ajax(如果你想自動完成它)。
你可以使用模擬瀏覽器這就像phantomjs:
它基本上沒有前端一個正常的瀏覽器。 PhantomJS使用Webkit引擎(例如Safari使用)。 因此它有能力執行JS,因此還有AJAX。
它不完全正確。如果事先足夠了解,通常可以在不涉及JavaScript的情況下執行請求。 – Felix
@Felix:我同意(編輯答案)。 但是,定製構建所有AJAX請求可能需要很多工作(並且很頭疼),並且最終必須使用與webbrowser相同的DOM。如你所說,你需要事先足夠的瞭解。儘管只爲一個特定的「頁面」執行此操作是可以的,但可能需要很長時間才能爲網站的不同網站/頁面執行此操作。 – Marcel
絕對同意。 – Felix