2015-01-06 36 views
0

我使用PHPCrawler類從eBay等不同商店獲取產品標題,該庫與我在我的應用程序中支持的所有商店無關,除了Blink store website網站的搜索頁面通常不正常像其他商店網站發起的,當我通過Chrome調試器關注了網站的請求時,我發現它是由腳本啓動的,儘管請求網址與我在Chrome上輸入地址欄的原始網址相同,而我在類爬行。PHPCrawler庫無法獲得內容

那麼有沒有什麼辦法讓爬蟲類獲取我重定向到的頁面呢?我使用了setFollowRedirects方法,但沒有運氣,因爲重定向是通過javascript在客戶端完成的,而不是在頭中。除了我在正常的獲取請求之後發現了額外的post請求之外,我還試圖添加post數據,但是我得到的結果是空的結果集,並且當我輸出抓取的頁面時,我沒有列出產品。

側面注意:Blink商店網站是一個ASP.net網站,這是我無法抓取其網頁的原因嗎?

UPDATE

我試着用標準的PHP捲曲功能,抓取網頁和呼應的響應,該頁面是呼應不完整,並保持清爽。

+0

前只需添加以下行有沒有嘗試過任何開發工具,例如Chrome開發者工具Fiddler來檢查請求? HTTP方法,請求頭等可能很重要。或者,您可以使用[PhantomJS](http://phantomjs.org/)以及一些爬蟲API,例如[unicrawler](http://bestmike007.com/unicrawler),得到你想要的。 – bestmike007

+0

@ bestmike007是的,我通過開發者工具監視了請求,發現頁面最初沒有產品列表,在頁面的開頭有一個帶有post方法的表單標籤,它提交給同一個鏈接。 然後,頁面提交使用JavaScript刷新自己的產品清單本身,此刻我試圖通過使用該表單數據作爲新的POST請求進行另一個curl調用來模仿此行爲。我會讓你知道發生了什麼。感謝你的協助。 –

回答

0

我終於在同一個遠程頁面上使用cURL兩次解決了這個問題,除非您擁有網站所需的有效cookie,否則搜索結果不會出現,因此第一個cURL請求是爲了將cookie存入文件首先,另一個cURL請求用於獲取內容。

調用curl_exec()

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
相關問題