2014-01-19 1 views
1

Я очистил эти таблицы в одной таблице на питоне с помощью BeautifulSoup. Код выглядит следующим образом:Экспорт скребковых таблиц в CSV

import urllib2 
from bs4 import BeautifulSoup 
for i in range(0,39): 
    first=urllib2.urlopen("http://www.admision.unmsm.edu.pe/res20130914/A/011/"+str(i)+".html").read() 
    soup=BeautifulSoup(first) 
    for tr in soup.find_all('tr')[2:]: 
     tds = tr.find_all('td') 
     print tds[0].text, tds[1].text, tds[2].text, tds[3].text 

В результате получается нечто вроде этого:

494560 ABAD SAAVEDRA, GERSON HORACIO 011 1116.8750 
455314 ABAD VALVERDE, MARIA ISABEL 011 1482.7500 
491005 ABREGU HUAMAN, MERCEDES LILIANA 011 503.4000 
457929 ACOSTA ABAD, ALEJANDRO FRANCISCO 011 413.0500 

Итак, как я могу экспортировать эту таблицу в формате CSV?

ответ

2

Используйте csv модуль:

import csv 
import urllib2 
from bs4 import BeautifulSoup 

with open('listing.csv', 'wb') as f: 
    writer = csv.writer(f) 
    for i in range(39): 
     url = "http://www.admision.unmsm.edu.pe/res20130914/A/011/{}.html".format(i) 
     u = urllib2.urlopen(url) 
     try: 
      html = u.read() 
     finally: 
      u.close() 
     soup=BeautifulSoup(html) 
     for tr in soup.find_all('tr')[2:]: 
      tds = tr.find_all('td') 
      row = [elem.text.encode('utf-8') for elem in tds[:4]] 
      writer.writerow(row) 
+1

Несовершеннолетний придираться: Это может быть немного чище в UTF-8 все сразу, а не повторять себя. Может быть, '[elem.text.encode ('utf-8') для elem in tds [: 4]]'? – abarnert

+0

@abarnert, Спасибо за совет. Я обновляю код в соответствии с вашими комментариями. – falsetru

+0

Есть ли хороший учебник или тема, чтобы понять код для экспорта в CSV? – CreamStat