cli中的微型webcrawler

crawtext的Python项目详细描述


![http://www.cortext.net](http://www.cortext.net/img/siteon0.png)



=====
crawtext是cortext实验室的一个项目。它独立于**cortext manager**平台,但需要与之交互。
获取免费帐户并通过注册
发现可用于自己研究的工具![cortext](http://manager.cortext.net/)

**crawtext**是命令行中的一个小型爬虫程序,允许您调查和收集与特定关键字匹配的Web资源。对于围绕某个特定主题存档Web很有用,结果还可以与Cortext Manager一起用于探索特定主题上的网站之间的关系。



about
--
Crawtext是一个小爬虫,它可以逐页收集相关文章几个关键字

爬虫程序需要:
*一个**查询**来选择相关页面

**起始URL**来收集数据

给定一个URL列表
1。机器人将收集每个url
2的文章。它将搜索从文章中提取的文本中的关键字。
=>;如果页面中存在关键字,则存储页面内容和
3。页面内的链接将添加到下一个要处理的列表中






installation
----




要安装crawtext,请从repo中克隆它:

$git clone git@github.com:cortext/crawtext.git
$cd crawtext
$python setup.py install
`````


然后,您可以使用pip自动安装所有依赖项
(所有依赖项都可以通过pip获得)

`````
$pip install-r dependencies.txt
````




您*必须*安装MongoDB:

才能安装用于Debian分发的插件从添加到/etc/sources的分发版中安装。list

```
$deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen
$sudo apt get install mongodb-10gen
````


*对于OSX分发版,请使用brew安装:

````
$brew install mongodb
```





====

此界面提供了一整套设置项目的选项。
如果需要与shell命令交互的帮助,只需键入即可查看e选项:

```
python crawtext.py--help
```



/>——
*新建项目:

````
python crawtext.py农药
````


*添加查询:
``````
python crawtext.py农药-q"农药和滴滴涕"
``
(是否支持查询*?运算符)

*使用搜索引擎选项添加新种子:


`````
python crawtext.py discriptions-k set"your api key"
````

[必应API密钥](https://datamarket.azure.com/dataset/bing/search)
更多添加URL的选项请参见爬网高级参数


*启动爬网:

``````
python crawtext.py discriptions start
````

爬网限制为20000个结果
*请参见ho它正在运行:

````
python crawetx.py农药报告
`````


*导出结果:

````````
结果和报告存储在/discriptions/



advanced usage
===
项目是按其名称定义的,结果存储在具有此给定名称的mongo数据库中。

一组作业:
例如:

*project"discriptions"由爬网、报表和导出组成种子t

-**存档**:

>在给定url

**和3个可选作业的情况下对整个网站进行爬网,作为管理主要作业的工具:**

-**导出**:

>以json/csv格式导出项目的结果、源和日志。数据集存储在项目的result/name_中

-**报告**:

报表存储在项目的报表/名称中。删除项目时,将自动执行导出操作。



/>*咨询您的项目:

```
crawtext.py vous@cortext.net
`````


*获取报告:

``````
````
`````


*获取导出:

```````
````>crawtext.py导出农药
```



*删除一个projet:

````
crawtext.py删除杀虫剂
````


*运行项目:

````````
`````



*停止当前项目的执行:

``````
```````
````


*repeat t项目:

```
crawtext.py杀虫剂-r(年月周日)
```



*定义项目用户:

````
```

crawtext杀虫剂-u vous@cortext.net
```


==

活动:
-一个**查询**
-一个或多个**种子**(启动爬网的URL)


添加种子有多种方法:
-手动(添加),
-为下一次运行配置文件或密钥(设置),
-收集种子并立即将其添加到源(文件或密钥)(附加)


*查询
----

定义查询:(查询是否支持*?操作员)

````
crawtext杀虫剂杀虫剂-q"杀虫剂?和ddt"```




*来源
----
*从文件定义来源:

`````
crawtext.py杀虫剂-s set sources.txt```




*从文件添加来源:

`````
crawtext.py杀虫剂-s append sources.txt```




*添加来源从url:

```
crawtext.py农药-s添加http://www.latribune.fr````


*定义来自bing搜索结果的源:

````
````
crawtext.py农药-k集12237675647`````



*添加来自bing搜索结果的源:

```
xt.py农药-k附加12237675647```




*根据先前的结果扩展源集:

`````
crawtext.py农药-s扩展`````




*删除种子:

````
````
crawtext.py农药-s删除http://www.latribune.fr````





*删除作业的每个种子:

```
crawtext.py discriptions-s delete```




存档参数(尚未实现):
----


存档作业需要URL,您还可以指定格式提取(可选)

*咨询或创建新的存档项目t:

````
crawtext.py www.lemonde.fr````


*为wiki创建存档:

`````
````
crawtext.py archive fr.wikipedia.org-f wiki```


results
===

结果存储在由项目名称调用的mongo数据库中
t使用导出选项的结果:

```
python crawtext.py农药导出```



集合

数据集的完整结构可以在
-源代码示例.json
-结果示例.json
-日志示例.json


错误报告
----
*1 outlinks empty[done]
*2 expand mode error[done]

features
----
*定义递归深度

后台作业
*执行后发送邮件
*构建web界面
*激活存档模式以爬网整个网站
*yaml集成



----


您可以看到代码![这里](https://github.com/c24b/crawtextv2)

-特别感谢Xavier Grangier和他的模块![python goose](https://github.com/grangier/python-goose)分叉用于自动文章检测。







----

*Mongo数据库:


>有时如果通过强制关闭程序,则可能会出现连接到数据库的错误,例如:

````
无法连接到服务器127.0.0.1:在src/mongo/shell/mongo.js:145````







>修复的方法是移除mongod的锁

`````
````
>

````````````



```````````

>










````````````````````/br/>
`````````````
sudo mongod——repaiR’

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javajaxb在嵌套节点中生成xmlns:xsi声明   java重定向到youtube以上传jsp上可用的视频   java提高了JVM和ANT的性能   java如何将返回的JSON数据放在HTML表单中   java如何发送XWWWFORMURLENCODE在重新授权   java为什么jvm XX:+EliminateAllocations失败   堆移除和重建方法?(爪哇)   Stanford NPL in Spark(Scala)应用程序运行到Java堆空间(Java.lang.OutOfMemoryError)   调试java中打开/关闭println的任何方式(详细模式)   java IntelliJ在鼠标悬停时显示JavaDocs工具提示   Olingo Odata Java中的自动扩展选项   json将postgres文本arry转换为java列表?   oop需要帮助推断Java代码   复选框的java添加操作侦听器AbstractTableModel   java如何从公共静态void main(String[]args)传递值   java从数据库中获取大值   java Processing 2.0电影从jar运行时无法打开电影文件   java如何在不使用应用程序的情况下刷新活动?   尝试将JSON解析为ListView时的Android:JSON parse:null对象引用