抓取HTML内容并将其馈送到transmogrifier管道
项目描述
抓取 - html到导入
transmogrify.webcrawler 将抓取HTML以提取页面和文件,作为您的transmogrifier管道的源。 transmogrify.webcrawler.typerecognitor 有助于根据抓取的mimetype设置‘_type’。 transmogrify.webcrawler.cache 通过本地存储项来加速抓取并减少内存使用。
这些蓝图设计用于与 funnelweb 管道一起使用,但也可以独立使用。
transmogrify.webcrawler
一个从网站或本地HTML文件抓取内容的源蓝图。
Webcrawler可以从实时网站、磁盘上的文件夹或磁盘上的文件夹导入HTML,该文件夹包含从实时网站保存的HTML,并且可能仍然包含指向该网站的绝对链接。
要抓取实时网站,向爬虫提供要开始抓取的基http url。此url必须是所有其他您希望从网站获取的url的起始url。
例如
[crawler] blueprint = transmogrify.webcrawler url = http://www.whitehouse.gov max = 50
将限制爬虫抓取前50页。
您也可以通过仅使用文件:风格url来抓取具有相对链接的本地HTML目录
[crawler] blueprint = transmogrify.webcrawler url = file:///mydirectory
或如果本地目录包含从网站保存的HTML,并且可能包含绝对url,则可以将其设置为缓存。爬虫将始终首先查找缓存
[crawler] blueprint = transmogrify.webcrawler url = http://therealsite.com --crawler:cache=mydirectory
以下将不会抓取大于4Mb的内容
[crawler] blueprint = transmogrify.webcrawler url = http://www.whitehouse.gov maxsize=400000
要跳过正则表达式抓取的链接
[crawler] blueprint = transmogrify.webcrawler url=http://www.whitehouse.gov ignore = \.mp3 \.mp4
如果Webcrawler在解析某些页面的HTML时遇到问题,您可以在解析之前预处理HTML。例如。
[crawler] blueprint = transmogrify.webcrawler patterns = (<script>)[^<]*(</script>) subs = \1\2
如果您想跳过处理具有特定MIME类型的链接,可以使用drop:condition。这个TALES表达式决定了哪些将被进一步处理。请参阅http://pypi.python.org/pypi/collective.transmogrifier/#condition-section
[drop] blueprint = collective.transmogrifier.sections.condition condition: python:item.get('_mimetype') not in ['application/x-javascript','text/css','text/plain','application/x-java-byte-code'] and item.get('_path','').split('.')[-1] not in ['class']
选项
- site_url:
要爬取的顶级URL
- ignore:
要跳过的URL的正则表达式列表
- cache:
读取已爬取项的本地目录,而不是直接访问网站
- patterns:
在解析HTML之前替换的正则表达式。每行一个
- subs:
用于替换patterns中每个项的文本。必须与patterns的行数相同。由于buildout处理空行的方式,要替换为空字符串(例如移除模式),请使用<EMPTYSTRING>作为替换。
- maxsize:
不爬取比这更大的内容
- max:
限制爬取页面的数量
- start-urls:
要初始爬取的URL列表
- ignore-robots:
如果设置,将忽略robots.txt指令并爬取一切
WebCrawler会发出类似以下的项目
item = dict(_site_url = "Original site_url used", _path = "The url crawled without _site_url, _content = "The raw content returned by the url", _content_info = "Headers returned with content" _backlinks = names, _sortorder = "An integer representing the order the url was found within the page/site )
transmogrify.webcrawler.cache
将爬取的内容保存到目录结构的蓝图
选项
- path-key:
允许您覆盖存储路径的字段。默认为‘_path’
- output:
存储缓存内容的目录
transmogrify.webcrawler.typerecognitor
根据WebCrawler提供的MIME类型分配内容类型的蓝图
变更日志
1.2.1 (2012-1-10)
setuptools-git未安装,因此发布缺少文件[djay]
1.2 (2012-12-28)
修复缓存检查以防止覆盖缓存[djay]
将重定向转换为Link对象[djay]
哪些MIME类型被爬取的总结统计[djay]
修复了重定向页面没有上传的bug[djay]
修复了在缓存中存储默认页面的bug[djay]
修复了URL中的空格字符的bug[ivanteoh]
更好地处理字符集检测[djay]
1.1 (2012-04-17)
添加了start-urls选项[djay]
添加了ignore_robots选项[djay]
修复了http-equiv refresh处理的bug[djay]
改进磁盘缓存[djay]
更好的日志记录[djay]
默认maxsize为无限[djay]
为reformat函数提供替换模式为空字符串的能力(无内容)。Buildout不支持配置中的空行,因此如果替换为
,则变为空字符串[davidjb] 在LXMLPage类中提供记录器,以便reformat函数可以成功[davidjb]
在webcrawler reformat函数中改进间距格式[davidjb]
1.0 (2011-06-29)
许多从本地目录导入多语言的修复[simahawk]
修复了文件名/语言不是英文时的UnicodeEncodeError[simahawk]
修复了遍历非序列的bug[simahawk]
修复了MyStringIO缺失导入的bug[simahawk]
1.0b7 (2011-02-17)
修复了缓存检查的bug[djay]
1.0b6 (2011-02-12)
仅在需要时打开缓存文件,以免耗尽句柄[djay]
遵循http-equiv refresh链接[djay]
1.0b5 (2011-02-06)
使用文件指针减少内存使用[djay]
缓存将.metadata文件保存以记录和回放头部信息[djay]
1.0b4 (2010-12-13)
改进日志记录[djay]
修复了由缓存引起的编码bug[djay]
1.0b3 (2010-11-10)
修复了在某些情况下导致许多链接被忽略的缓存bug[djay]
修复了文档[djay]
1.0b2 (2010-11-09)
当未设置输出时停止localhost输出[djay]
1.0b1 (2010-11-08)
将site_url更改为just url[djay]
将maxpage重命名为maxsize[djay]
修复了file: style URLs[djay]
添加了cache选项以替换base_alias[djay]
修复了由webcrawler设置而不是url的期望路径的_origin键,现在它应该是路径[Vitaliy Podoba]
将 _orig_path 添加到管道项目以保留原始路径,用于任何后续用途,我们将需要 [Vitaliy Podoba]
- 在考虑网页爬虫蓝图中的基本标签的情况下,使所有 URL 绝对化
[Vitaliy Podoba]
0.1 (2008-09-25)
- 将包重命名为从 pretaweb.blueprints 到 transmogrify.webcrawler。
[djay]
增强导入视图 [djay]
项目详情
下载文件
为您的平台下载文件。如果您不确定要选择哪个,请了解有关 安装软件包 的更多信息。