基于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)

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

推荐PyPI第三方库


热门话题
java在jframe中模糊的背景上创建一个透明的矩形   java和super之间有区别。getX()和简单的x?   使用ant的java删除eclipse项目   java找不到。txt文件?   多线程Java wait()notify()   带按钮的java透明控件   java Android Studio 3无法构建我的项目   性能最佳(最快且节省内存)的Java收集/数据结构,可同时插入和删除项   spring+hibernate集成中的java ClassNotFoundException   java如何在Android上建立异步URL连接?   java当我选择contacts选项卡时,选项卡栏消失了   java根据数据库中的日期获取结果,不考虑时间   java如何访问WebChromeClient中的方法?   java如何在安卓中使用两行列表项?   spring Swagger Java日期格式验证引发异常