Есть ли способ сохранить данные, полученные с использованием селена, в базу данных, предоставленную django? - PullRequest
0 голосов
/ 18 апреля 2020

Я хочу сохранить данные, полученные с использованием селена, в базе данных, предоставленной django.

Но я не могу. Пожалуйста, скажите мне, как решить.

Код ниже - мой код.

Мой проект называется "ebookranking", а имя приложения - "index"


#kyobo.py
from bs4 import BeautifulSoup
from selenium import webdriver

import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ebookranking.settings')
import django
django.setup()
from index.models import Book

def kyobo():
    driver = webdriver.Chrome('C:\\Users\\insutance\\PycharmProjects\\chromedriver')  
    driver.get('http://m.kyobobook.co.kr/digital/ebook/bestList.ink?cate_code=1&class_code=&barcode=&barcodes=&cate_gubun=&orderClick=&listCateGubun=1&listSortType=1&listSortType2=0&listSortType3=0&listSortType4=0&need_login=N&type=&returnUrl=%2Fdigital%2Febook%2FbestList.ink&reviewLimit=0&refererUrl=&barcodes_temp=&gubun=&ser_product_yn=&groupSort=1&groupSort2=0&groupSort3=0&groupSort4=0')
    driver.implicitly_wait(2)       

    html = driver.page_source
    soup = BeautifulSoup(html, 'html.parser')

    titles = []     

    for n in range(1,31):
        title = soup.select_one('#list > li:nth-child('+ str(n) +') > div.detail > p.pubTitle > a')              
        titles.append(title.text)              

    driver.quit()

    return titles

    if __name__=='__main__':
        datas = kyobo()
        for t in datas:
            Book(title=t).save()

Код ниже - код моей модели.


#models.py
from django.db import models

# Create your models here.
class Book(models.Model):
    title = models.CharField(max_length = 200)
    price = models.CharField(max_length = 10)

    def __str__(self):
        return self.title

1 Ответ

0 голосов
/ 18 апреля 2020

Вы должны позвонить django.setup() согласно документации

После того, как вы установили DJANGO_SETTINGS_MODULE или вызвали configure (), вам нужно будет позвонить django .setup (), чтобы загрузить ваши настройки и заполнить реестр приложений Django. Например:

import django
from django.conf import settings
from myapp import myapp_defaults

settings.configure(default_settings=myapp_defaults, DEBUG=True)
django.setup()

# Now this script or any imported module can use any part of Django it needs.
from myapp import models
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...