本开源项目
Fork from
pyrailgun 原作者是 princehaku 并使用MIT许可协议
- 增强的
strip
规则配置参数。
进行文本提取时可过滤 HTML 标签及自动换行。
- 新增加
match
规则配置参数。
用于进行 正则表达式 规则匹配,与
rule
替换使用。
- 新增加
extract
规则配置参数。
可进行 XPath 规则匹配,用于将相同节点存储于数组中,需要配合
rule
或match
使用。
- 增强对重复节点分析功能。
对空值自动匹配,使分析得到的数组个数与重复节点数相等,可使用
ignore
参数取消。
- 更加友好的控制台输出提示。
方便查找错误信息。
- 可对抓取页面的连接进行控制。
防止网络连接或其他情况造成的某些页面抓取失败。
- 去除了
webkit
内核抓取支持及其他 BUG 修复。
精简除
requests
/lxml
/bs4
外,不需要其他依赖包。
可参考根目录提供的两个样例 zhihu
和 bangumi
,分别是抓取 知乎
和 番组计划
的脚本。
- 安装并配置
Python2.7
环境。 - 点击运行
zhihu.py
或bangumi.py
。
.. code-block:: python
from pyrailgun import RailGun
import sys, re, json
reload(sys)
sys.setdefaultencoding("utf-8")
railgun = RailGun()
railgun.setTask(file("xxx.json"))
railgun.fire()
nodes = railgun.getShells()
for id in nodes:
node = nodes[id]
......
--
以下是源作者的 README:
NEED Python2.7
功能
-
支持从json文件读取抓取任务
-
支持 python字典数据源方式 定义抓取任务
安装
-
[从pip安装] (https://pypi.python.org/pypi/pyrailgun)
pip install pyrailgun
-
源码安装
python setup.py install
语法
例子
-
[快速入门] (https://github.com/princehaku/pyrailgun/wiki/简单使用说明)
-
[全功能简单例子] (https://github.com/princehaku/pyrailgun/blob/master/demo/tour/)
-
[读取输入变量] (https://github.com/princehaku/pyrailgun/blob/master/demo/userinput/)
-
[WebKit抓取] (https://github.com/princehaku/pyrailgun/blob/master/demo/webkit/)
其他
-
python2.7 是必须的
更新
-
0.25 fix 一个crash问题
-
0.24 受版权限制,替换webbroser为自己写的版本 去除yaml的支持