github crawler.
├── twcrawler
│ ├── scrapy.cfg
│ └── twcrawler
│ ├── add_proxy.py
│ ├── add_task.py
│ ├── bin
│ ├── conf
│ ├── exc.py
│ ├── extentions
│ ├── htmlfiles
│ ├── __init__.py
│ ├── items.py
│ ├── metric.py
│ ├── middleware
│ ├── mysettings.py
│ ├── pipelines.py
│ ├── proxy_provider
│ ├── proxy_setting.py
│ ├── run.sh
│ ├── scheduler.py
│ ├── settings.py
│ ├── spiders
│ ├── task_queue.py
│ ├── tests.py
│ ├── tools
│ └── utils.py
items.py
爬虫存储的数据结构,在代码里直接 import twcrawler.items.XXXITEM
在 items.py 里编写自己定义的 Item 就可以了,内部有例子。
pipelines.py
定义输出,直接在 mysettings.py
里面配置, 搜 ITEMPIPELINES
那一个配置。
在 pipelines.py 编写自己定义的 PipeLine 就可以了,内部有例子。
spider/***
每个模块就是一个爬虫,一次只会启动一个爬虫,所有的解析只会调用对象的 parse
方法。
如果要使用 add_task.new_task
,需提供一个 build_url
的方法来生成 url。
用的时候直接 new_task(string)
,然后放进去的东西会经过调用 build_url(string)
后返回的 url 来送到爬虫引擎进行爬取。
string 的构造由使用者自己决定,build_url 的解析也由使用者决定。不提供的话默认返回 string(即你可以直接不提供 build_url 方法,直接 new_task(url_string) 就可以了。)
build_url 的用法见 spider/test/test.py
的例子。
twcrawler/twcrawler/spider/test/test.py
./bin/new_spider.py spider_name
然后爬虫会在 spiders
目录下生成
先配置 mysetting.py 中的 'SPIDER_NAME',即为你要跑的爬虫的 名字 (这个是定义在你的 爬虫模块里的,见 test.py 例子)。
然后配置 spiders/spider_name/setting.py 中的 SEEDS
, 即种子 redis 服务器 的 地址。
然后启动种子服务器上的 redis
如果使用了代理的话启动 add_proxy.py
然后运行 ./run.sh