基于django的人-蜘蛛框架
ants的Python项目详细描述
蚂蚁
===
![构建状态](https://travis-ci.org/mymuisse/ants.svg?branch=master)
===
-django 1.8+
-gevent 1.1.1+
==
下载这个该死的源代码并构建
git clone git@github.com:mymusise/ants.git
cd ants
python setup.py build
sudo python setup.py install
====
1。初始化项目
好的,我建议您使用virtualenv
virtualenv my_env
source my_env/bin/activate
>然后安装需求并启动django项目
pip install django gevent ants
ants tools start project my_ants
cd my_ants
获取项目的文件树
:manage.py
,我的“蚁族”们
我的“蚁族”们
我的“蚁族”们
蚂蚁
│ └── __init__.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── spiders
├── 管理者的py
,蚂蚁
蚂蚁
/>//br/>
2。写下你的第一只蜘蛛蚂蚁!
ant s将通过run命令“python manage.py runclawer[spider廑name]`
让我们添加一个ant.``spider/ants/first廑blood.py`
import请求
class firstbloodclawerwhatnameyouwant(object):
name='first廑blood';必须是唯一的
url廑head=“”https://movie.douban.com/j/search\u主题?type=movie&;tag=%e7%83%ad%e9%97%a8&sort=recommend&;page廑limit=10&page廑start={}“
max廑page=4
def get廑url(self,url:
res=requests.get(url)
print(res.text)
def start(self):
need_url=[self.url_head.format(i)for i in range(self.max_page)]
list(map(self.get_url,need_url))
“name”属性是必需的,这是不同爪子的唯一标识。
python manage.py runclawer first_blood
你只需要定义两个模型,源和目标。例如:
in file clawers/models.py
source_url=models.charfield(max_length=255)
task_id=models.integerfield()
html=models.textfield()
请求,并将html源代码保存在“moviehtml”中。如果我们通过从basetask请求url获得一个页面,我们将把这个'basetask().id'保存到'moviehtml().task\u id'。我们可以这样重新定义我们的“第一滴血”蚂蚁:
=电影html
def run(self,task):
res=requests.get(task.source_url)
moviehtml.objects.create(task_id=task.id,html=res.text)
但是,如果basetask object.id中有一个在moviehtml.task id中,则此basetask对象将被赋予运行函数。
更多信息来自[该死的源代码](https://github.com/mymuisse/ants/blob/master/ants/utils.py l74)
===
![构建状态](https://travis-ci.org/mymuisse/ants.svg?branch=master)
===
-gevent 1.1.1+
==
下载这个该死的源代码并构建
git clone git@github.com:mymusise/ants.git
cd ants
python setup.py build
sudo python setup.py install
====
1。初始化项目
好的,我建议您使用virtualenv
virtualenv my_env
source my_env/bin/activate
>然后安装需求并启动django项目
pip install django gevent ants
ants tools start project my_ants
cd my_ants
获取项目的文件树
:manage.py
,我的“蚁族”们
我的“蚁族”们
我的“蚁族”们
蚂蚁
│ └── __init__.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── spiders
├── 管理者的py
,蚂蚁
蚂蚁
/>//br/>
2。写下你的第一只蜘蛛蚂蚁!
ant s将通过run命令“python manage.py runclawer[spider廑name]`
让我们添加一个ant.``spider/ants/first廑blood.py`
import请求
class firstbloodclawerwhatnameyouwant(object):
name='first廑blood';必须是唯一的
url廑head=“”https://movie.douban.com/j/search\u主题?type=movie&;tag=%e7%83%ad%e9%97%a8&sort=recommend&;page廑limit=10&page廑start={}“
max廑page=4
def get廑url(self,url:
res=requests.get(url)
print(res.text)
def start(self):
need_url=[self.url_head.format(i)for i in range(self.max_page)]
list(map(self.get_url,need_url))
“name”属性是必需的,这是不同爪子的唯一标识。
python manage.py runclawer first_blood
你只需要定义两个模型,源和目标。例如:
in file clawers/models.py
html=models.textfield()
请求,并将html源代码保存在“moviehtml”中。如果我们通过从basetask请求url获得一个页面,我们将把这个'basetask().id'保存到'moviehtml().task\u id'。我们可以这样重新定义我们的“第一滴血”蚂蚁:
=电影html
def run(self,task):
res=requests.get(task.source_url)
moviehtml.objects.create(task_id=task.id,html=res.text)
但是,如果basetask object.id中有一个在moviehtml.task id中,则此basetask对象将被赋予运行函数。
更多信息来自[该死的源代码](https://github.com/mymuisse/ants/blob/master/ants/utils.py l74)