2009-12-10 5 views
0

Mon projet est de collecter des données de sites Web par lots (bios d'avocat du site Web de chaque entreprise, car ils sont tous différents, j'utiliserai une araignée modifiée pour chaque site) et convertir chaque lot en un fichier csv; puis à json; puis chargez-le dans la base de données. J'ai donc besoin d'ajouter chaque nouveau fichier à la base de données existante. S'il vous plaît laissez-moi savoir comment réaliser cette tâche de la meilleure façon. Merci.Comment alimenter sqlite3 en django?

Répondre

5

Chargez simplement la base de données directement. Collectez les données des sites Web par lots, en chargeant le SQlite3 directement. Il suffit d'écrire des applications batch simples qui utilisent l'ORM de Django. Collectez des données à partir de sites Web et chargez SQLite3 immédiatement. Ne créez pas de fichier CSV. Ne créez pas JSON. Ne créez pas de résultats intermédiaires. Ne fais pas de travail supplémentaire.


Modifier.

from myapp.models import MyModel 
import urllib2 

with open("sourceListOfURLs.txt", "r") as source: 
    for aLine in source: 
     for this, the, the_other in someGenerator(aLine): 
      object= MyModel.objects.create(field1=this, field2=that, field3=the_other) 
      object.save() 

def someGenerator(url): 
    # open the URL with urllib2 
    # parse the data with BeautifulSoup 
    yield this, that, the_other 
+0

Merci. Ça semble bon. Mais pouvez-vous me donner plus de détails pour commencer. Une recherche de "Django ORM" n'a pas abouti à des choses de base que je peux utiliser. – Zeynel

+0

Que voulez-vous dire par "charger le SQLite3 directement?" – Zeynel

+0

@Zeynel: Votre question dit que vous utilisez Django. Utilisez-vous réellement Django? Si vous l'êtes, vous connaissez déjà l'ORM de Django. http://stackoverflow.com/questions/1884694/how-to-populate-sqlite3-in-django/1885417#1885417 Si vous n'utilisez pas réellement Django, veuillez mettre à jour la question pour indiquer ce que vous * utilisez *. –