2016-10-16 54 views
0

請原諒我,如果我不使用正確的術語。我有一個我試圖從中獲取信息的網頁。問題是,當我查看頁面源時,我想要抓取的數據不在那裏。在主http請求觸發其他請求之前,我遇到過這個問題,所以我查找的信息實際上是其他地方,我發現使用Google chrome檢查 - 網絡功能。我手動搜索各種文檔和xhr文件,使其具有正確的信息。這有時漫長而乏味。我也可以使用谷歌chromes inspect功能來檢查包含我想要的信息的元素,並提出正確的源代碼,但它似乎無法弄清楚我可以在哪裏或如何使用它來快速找到相應的HTTP標頭。如何從google chrome inspect元素中找到HTTP請求?

重申在短期內 - 我可以使用谷歌瀏覽器的檢查元素功能,然後讓它顯示相應的網絡事件(HTTP請求),產生該代碼?

我會添加我正在處理的案例研究。

http://www.flashscore.com/tennis/atp-singles/acapulco/results/ 

顯示在網球比賽中發生的不同比賽。我試圖抓取比賽hrefs,但如果你查看頁面的源代碼,你會發現它們不在那裏。

感謝

回答

1

在短期內重申 - 我可以使用谷歌瀏覽器的檢查元素功能,然後讓它顯示相應的網絡事件(HTTP請求),產生該代碼?

不。這不是瀏覽器記錄的東西。

在大多數情況下,HTTP響應會在最終轉換爲頁面上的元素之前通過大量Javascript代碼。跟蹤哪個HTTP響應對給定元素「負責任」將涉及大量的數據流分析,並且對於瀏覽器來說是不切實際的。

+0

閱讀完本文後:http://www.gregreda.com/2015/02/15/ web-scraping-finding-the-api /我發現數據正在處理客戶端,這似乎意味着我必須查看XHR調用,但它們都不提供我在網頁上看到的匹配的預覽或代碼,我假設我是從服務器端抓取數據的一些預防措施? – Vindictive

+0

這不太可能只是作爲預防措施。網站的作者更可能只是覺得在瀏覽器端進行HTML呈現會更容易。 – duskwuff

0

方式一:

打開Firefox,安裝的LiveHTTPHeaders,然後運行它,你會看到預期的頭。

谷歌瀏覽器還有相同的插件,但沒有經過測試。

+0

這不是我所需要的,只是看起來像Chrome已經做了什麼。 – Vindictive

+0

區別在於您無法使用_chrome開發工具在本網站上跟蹤http標題AFAIK(可能是因爲新網頁已打開?) –