爬蟲爬網(wǎng)頁為什么數(shù)據(jù)出不來 基于python的scrapy爬蟲,關(guān)于增量爬取是怎么處理的?
基于python的scrapy爬蟲,關(guān)于增量爬取是怎么處理的?對于只讀取少數(shù)網(wǎng)站更新內(nèi)容的爬蟲,不需要在Python代碼中實(shí)現(xiàn)增量功能,直接在項目中添加URL字段。項目[“Url”]=響應(yīng).url然后
基于python的scrapy爬蟲,關(guān)于增量爬取是怎么處理的?
對于只讀取少數(shù)網(wǎng)站更新內(nèi)容的爬蟲,不需要在Python代碼中實(shí)現(xiàn)增量功能,直接在項目中添加URL字段。
項目[“Url”]=響應(yīng).url
然后,在數(shù)據(jù)端,將URL列設(shè)置為unique。
之后,您可以在Python代碼中捕獲數(shù)據(jù)庫提交返回的異常,忽略它或?qū)⑵鋫鬏數(shù)饺罩尽?/p>
我使用Sqlalchemy。我就是這么寫的sqlalchemy.exc公司import IntegrityError
類XxxPipeline(object):
定義進(jìn)程項目(self,Item,spider):]會話.add()
#….
試試看:會話.提交()
打印“爬網(wǎng)%s完成!“%item[”URL“
]除了完整性錯誤:
print”skip%s.”%item[”URL“
]return item
盡管每次都會重復(fù)爬網(wǎng)某些數(shù)據(jù),但最終結(jié)果庫中不會有相同的URL。
對于小型爬蟲,重復(fù)爬蟲的成本可以忽略不計。