2009-12-10 4 views
0

웹 사이트의 데이터를 일괄 적으로 수집하는 계획입니다 (각 회사의 웹 사이트에있는 변호사의 바이오스, 모두 다르기 때문에 각 사이트에 대해 수정 된 스파이더를 사용합니다). 그리고 각 배치를 CSV 파일로 변환하십시오. 다음 json; 데이터베이스에로드하십시오. 그래서 각각의 새 파일을 기존 데이터베이스에 추가해야합니다. 이 작업을 가장 좋은 방법으로 수행하는 방법을 알려주십시오. 감사.django에서 sqlite3을 채우는 방법?

답변

5

데이터베이스를 직접로드하면됩니다. 웹 사이트에서 일괄 적으로 데이터를 수집하고 SQlite3를 직접로드합니다. Django ORM을 사용하는 간단한 배치 응용 프로그램을 작성하십시오. 웹 사이트에서 데이터를 수집하고 즉시 SQLite3을로드하십시오. CSV를 만들지 마십시오. JSON을 만들지 마라. 중간 결과를 만들지 마십시오. 추가 작업을하지 마십시오.


편집.

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

고맙습니다. 이것은 좋은 것 같습니다. 하지만 좀 더 자세히 설명해 주시겠습니까? "Django ORM"을 검색해도 사용할 수있는 기본 항목이 없습니다. – Zeynel

+0

"SQLite3을 직접로드 하시겠습니까?" – Zeynel

+0

@ Zeynel : 귀하의 질문에 장고를 사용하고있다. 당신은 실제로 장고를 사용하고 있습니까? 그렇다면 Django ORM에 대해 이미 알고 있습니다. http://stackoverflow.com/questions/1884694/how-to-populate-sqlite3-in-django/1885417#1885417 Django를 실제로 사용하고 있지 않다면 * 사용중인 * 것을 말하도록 질문을 업데이트하십시오. –

관련 문제