从Django为外部网站运行Selenium

时间:2018-08-29 09:46:18

标签: python django selenium django-models automated-tests

我有一个独立的Python-Selenium机器人,它可以模拟外部网站中的用户交互。我想将网站上的一些详细信息写到数据库中。因此,我喜欢将现有的bot集成到Django框架中,以使写入数据库更加容易。

我想知道是否可以将此独立项目集成到Django中。如果是,我想知道如何触发该机器人。

1 个答案:

答案 0 :(得分:0)

您可以根据自己的喜好触发机器人,例如通过cron工作。但是,有几件事情要考虑。首先,您的漫游器需要在与Django项目相同的虚拟环境中运行。其次,您的Django项目根目录必须在sys.path中可用。像这样:

import os
import sys
import django

sys.path.append('/path/to/your/django-project-root')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')
django.setup()
# Do your stuff, e.g:
from my_app.models import MyModel

value1, value2 = get_data_from_somewhere()
MyModel.objects.create(param1=value1, param2=value2)

运行django.setup()后,您可以在Django项目的上下文中执行任何代码,包括通过模型API保存数据,如上例所示。