我需要在本地抓取并存储,以便将来分析有限的网站列表的内容。我基本上想要在所有页面中啜饮并按照所有内部链接来获取整个公开的网站。
是否有现有的免费图书馆让我在那里?我见过奇尔卡特,但这是为了报酬。我只是在这里寻找基线功能。思考?建议?
完全重复:Anyone know of a good python based web crawler that I could use?
答案 0 :(得分:7)
使用Scrapy。
这是一个基于扭曲的网络爬虫框架。仍处于重大发展阶段,但已经有效。有很多好东西:
通过在返回的HTML上使用XPath选择器提取有关今天在mininova torrent网站中添加的所有torrent文件的信息的示例代码:
class Torrent(ScrapedItem):
pass
class MininovaSpider(CrawlSpider):
domain_name = 'mininova.org'
start_urls = ['http://www.mininova.org/today']
rules = [Rule(RegexLinkExtractor(allow=['/tor/\d+']), 'parse_torrent')]
def parse_torrent(self, response):
x = HtmlXPathSelector(response)
torrent = Torrent()
torrent.url = response.url
torrent.name = x.x("//h1/text()").extract()
torrent.description = x.x("//div[@id='description']").extract()
torrent.size = x.x("//div[@id='info-left']/p[2]/text()[2]").extract()
return [torrent]
答案 1 :(得分:0)
你真的需要一个图书馆吗?我强烈建议Heritrix作为一个很好的通用爬虫来保留整个网页(而不是只存储部分文本的更常见的抓取工具)。它的边缘有点粗糙,但效果很好。
那就是说,你可以试试HarvestMan http://www.harvestmanontheweb.com/