最近頻繁的給客戶作採集功能,既然代碼沒法公佈,因此一直想寫個思路類的文章.
既然是簡單的爬蟲,那麼一切天然以簡單爲原則,能少用的都少用,好比python和Redis這兩個神兵利器就被我省略了.
打造這隻蟲子就像是樵夫砍柴通常,該磨刀仍是要磨刀.php
拜拜山頭python
對象站點:國內知名電商平臺如蘑菇街,惟品會等.
實現需求:站羣模式可將對方店鋪或商品採集根據指定接口分發數據,並過濾指定關鍵字及自定義商品售價瀏覽器
利刃在手多線程
1.安裝=無頭瀏覽器phantomjs,相似的無頭瀏覽器或者在他們基礎上衍生的東西有不少,但phantomjs基本上能夠知足需求,用法也簡單,因此本次就選用它了.
2.安裝=多線程擴展pthreads,因爲python和Redis對於一些phper而言增長了學習成本(話說如今會php的不懂他兩的應該不多了吧),因爲phantomjs從加載到渲染是比較慢的,爲了提升效率,咱們須要用到多線程.學習
山裏事兒多網站
1.隨機代理:由於採集是全自動化的,須要不斷的訪問被爬的站點,爲了防止被屏蔽,從代理站抓一些IP來掩飾是不錯的方法.
2.URL自動增補:有些網站頁面的的url用的相對路徑,因此補全是必備的.
3.深度控制:例如採集商品的時候很容易由於關聯商品而陷入無止境的挖掘
4.任務分佈:雖然沒有用到Redis,本次的採集須要將任務下發給其他站點
5.內容過濾:如今比較頭疼的是一些商城或店鋪有水印,這個暫時無解.url
因爲本次採集在建立任務時已經預設了採集對象,例如按店採集,按商品採集.因此開頭的第一步就省略了.spa