最近在寫爬蟲練手,但是發現匹配出來資料很少
以部落格園為例,這個是我的正則
/http\:\/\/www\.cnblogs\.com\/' . $name . '\/[^\" ]+.html/i
然後匹配這位同學:http://www.cnblogs.com/hoojo/default.html?page=1
發現只有42條資料,但是這位同學明顯不止42篇文章,請問如何最佳化我的正則
回複內容:
最近在寫爬蟲練手,但是發現匹配出來資料很少
以部落格園為例,這個是我的正則
/http\:\/\/www\.cnblogs\.com\/' . $name . '\/[^\" ]+.html/i
然後匹配這位同學:http://www.cnblogs.com/hoojo/default.html?page=1
發現只有42條資料,但是這位同學明顯不止42篇文章,請問如何最佳化我的正則
首先,你這個http://www.cnblogs.com/hoojo/default.html?page=1 只是第一頁,第一頁好像只有這麼多篇文章吧?http://www.cnblogs.com/hoojo/default.html?page=2 是第二頁。
首先,你要確定他的部落格裡面有多少頁。你就從第二頁http://www.cnblogs.com/hoojo/default.html?page=2 取它的總頁數共6頁: 上一頁 1 2 3 4 5 6,再在你原來的代碼外面加個 for 迴圈 http://www.cnblogs.com/hoojo/default.html?page={$page_number} 這樣就好了。
不太懂您的正則寫法。
我數了下第一頁一共50條文章,然後我是這麼實現的:
|i", $aa, $m);var_dump($m[1]);
這樣的結果就是文章連結數組了。
在測試過程中發現文章作者會把其他文章連結寫在摘要裡,並且被顯示。所以您的方法會把摘要內的連結也讀出來。
我這裡是用文章原文連結的特性擷取到的連結。
希望能夠幫到你。