A Simple Distributed Web Crawle
Project description
simplified-scrapy
simplified scrapy, A Simple Web Crawle
Requirements
- Python 2.7, Python 3+
- Works on Linux, Windows, Mac OSX, BSD
运行
进入项目根目录,执行下面命令
python start.py
Demo
项目中有爬虫一个例子,在文件夹spiders下,文件名为demoSpider.py。自定义的爬虫类需要继承Spider类
from core.spider import Spider
class DemoSpider(Spider):
需要给爬虫定义一个名字,配置入口链接地址,与抽取数据用到的模型名称。下面是采集新浪健康资讯数据的一个例子。其中auto_main_2表示抽取相同2级域名的链接,auto_obj表示自动抽取页面中的资讯数据,包括标题、正文和时间。
name = 'demo-spider'
start_urls = ['http://health.sina.com.cn/']
models = ['auto_main_2','auto_obj']
其中模型文件在文件夹models下,如果需要自定义模型,可以使用这个模型工具,下载地址。使用说明在这里
必须要重写的方法为saveObj,用于保存抽取出的数据
def saveObj(self, data):
自定义爬虫类时,有下面这些方法和属性可以重写
concurrencyPer1s=1
def beforeRequest(self, request):
def afterResponse(self, response, cookie, url):
def downloadError(self,url,err=None):
def saveObj(self, data):
#下面两个方法需要同时重写。如果重写了一个,另一个没有重写,可能会出错。
def popHtml(self):
def saveHtml(self,url,html):
#下面三个方法需要同时重写。如果重写了一个,其它的没有重写,可能会出错。
def popUrl(self):
def urlCount(self):
def saveUrl(self, urls):
Setting
自定义的爬虫需要在配置文件(setting.json)进行配置,配置后爬虫类才会生效。
{
"spiders":[
{"file":"spiders.extractSpider","class":"ExtractSpider"}
],
"concurrency":1,
"concurrencyPer1S":6,
"intervalTime":0.3
}
UrlStore、HtmlStore
可以重写UrlStore、HtmlStore中的方法,将url和html存储到redis、mongodb等数据库中。使用重写过的类,在爬虫类中实例化相应变量
class DemoSpider(Spider):
url_store = RedisUrlStore()
obj_store = MongoObjStore()
html_store = SelfHtmlStore()
Project details
Release history Release notifications
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size simplified_scrapy-0.0.9-py2.py3-none-any.whl (35.9 kB) | File type Wheel | Python version py2.py3 | Upload date | Hashes View hashes |
Close
Hashes for simplified_scrapy-0.0.9-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbe73f3c6ff6645b5519f4bf81b62f1e1233a245467b3aca1d1cc1fc32ee03ba |
|
MD5 | c21cd417eab0fefabefb2252e6564cd8 |
|
BLAKE2-256 | 58d9f09c6afef24ac64b6c4082852dd2f1edc0cf1aa1a9f3029a5db4029dc000 |