我正在運行一個PHP網絡抓取器,從網上商店抓取信息(免責聲明,我有從商店的許可來做到這一點)。刮刀有3個功能:優化一個PHP網絡刮板,以避免500服務器錯誤
- 獲取從JSON文件存儲的URL列表(爲便於,讓我們只說我傳遞一個URL到功能雖然)
- 功能
getLinks
爭奪所有的提供的URL頁面上的鏈接,找到「下一個項目」鏈接,進入它,抓取該頁面上的產品鏈接等等。它把它們放在一個數組$allLinks
中。 - 我運行
foreach ($allLinks as $key => $value) {getInfo($value);}
- 功能
getInfo($value)
轉到每個產品URL並從每個單獨的產品頁面獲取產品信息。
下面是完整的代碼http://pastebin.com/SHHbG9EN#
我的服務器上,這是因爲(據我所知)我使用了太多的內存導致錯誤/代碼是相當繁瑣的。我可以將getLinks
的結果打印出來,但是一旦我深入瞭解,就會發現500個服務器錯誤(並且沒有任何內容發佈到日誌中)。
我的問題
我應該寫我的結果MySQL和將在減輕程序的負擔?如果是這樣,那麼最好的辦法是什麼?我是否需要(以某種方式)清除我的變量或某些內容以釋放內存?我對PHP很陌生,因此優化代碼的複雜性對我來說是陌生的。
你確定#item_info h2是正確的使用,因爲對於給定的網址,我沒有看到「#item_info h2」。只做了$(「#item_info h2」)長度的firebug conolse檢查,並返回0長度。 – Shridhar 2013-05-06 00:36:06
@Shridhar認爲你看錯了頁面,是的,它存在。 – Jascination 2013-05-06 01:13:05