Уведомления

Группа в Telegram: @pythonsu

#1 Июль 25, 2012 14:50:49

ruff3d
Зарегистрирован: 2012-05-09
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

импорт данных из HTML таблицы через lxml в MySQL

Доброго всем дня!
Заранее извиняюсь за нубовский вопрос…
Пишу парсер, все работает… вот только не могу сообразить алгоритм для импорта HTML таблици в MySQL

делал так:

for trs in doc.cssselect('table tr'):
        for tr in trs:
             tds = tr.cssselect('td')

выводит все ячейки всей таблицы…
не пойму как записать их в поля MySQL т.к. выводится тупо списком, а как записать их в правильные поля БД?

Офлайн

#2 Июль 25, 2012 15:47:46

ruff3d
Зарегистрирован: 2012-05-09
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

импорт данных из HTML таблицы через lxml в MySQL

кто нибудь??????

или зря я обратился в раздел для новичков?

Офлайн

#3 Июль 25, 2012 16:20:23

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

импорт данных из HTML таблицы через lxml в MySQL

Схема у таблицы в БД какая? Как ее создаете?

Офлайн

#4 Июль 25, 2012 16:28:35

ruff3d
Зарегистрирован: 2012-05-09
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

импорт данных из HTML таблицы через lxml в MySQL

сначала создаю поля таблицы в БД …. все поля текстовые и соответствуют полям таблицы HTML

потом хочу INSERTом импортировать данные в БД

Офлайн

#5 Июль 25, 2012 17:36:23

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

импорт данных из HTML таблицы через lxml в MySQL

Покажите код добавления данных в базу. Где конкретно проблемы возникают? Какую библиотеку используете?

Должно же быть какое-то соответствие: столбец в HTML - столбец в таблице БД.

Отредактировано reclosedev (Июль 25, 2012 17:38:55)

Офлайн

#6 Июль 26, 2012 06:54:50

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

импорт данных из HTML таблицы через lxml в MySQL

Совершенно не понял в чем проблема. Раз колонки таблицы соответствуют полям в базе, собирайте значения всех ячеек в строке в список, а потом биндите в запрос ‘INSERT’.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#7 Июль 26, 2012 09:31:20

ruff3d
Зарегистрирован: 2012-05-09
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

импорт данных из HTML таблицы через lxml в MySQL

В том-то и вопрос. В список данные я могу собрать. И потом в цикле его разобрать в БД.

Но ведь должен же быть более гуманный способ. Может у кого-нибудь есть пример из личного опыта?
Прошу помочь в данном вопросе.

дайте кусочек кода…

Офлайн

#8 Июль 26, 2012 09:40:15

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

импорт данных из HTML таблицы через lxml в MySQL

ruff3d
В том-то и вопрос. В список данные я могу собрать. И потом в цикле его разобрать в БД.
Примерно так и должно быть.
ruff3d
дайте кусочек кода
Давно бы уже свой показали, если что не так, поправит кто-то.

Офлайн

#9 Июль 26, 2012 09:58:46

ruff3d
Зарегистрирован: 2012-05-09
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

импорт данных из HTML таблицы через lxml в MySQL

db = MySQLdb.connect(host="localhost", user="root", passwd="111111", db="base", charset='utf8')
if db :
    print "db is ok!"
    cursor = db.cursor()
for trs in doc.cssselect('table tr'):
    for tr in trs:
             tds = tr.cssselect('td')
             i+=1
             l[i]=tds[0].text
             if i=7:   i=0
        
   sql='INSERT INTO T1(num, name, val, dom,kod,sin,rar)' VALUES (%s,%s,%s,%s,%s,%s,%s)'
   cursor.execute(sql,(l[1], l[2], l[3], l[4],l[5],l[6],l[7]))


как-то так… прошу внести поправки… кто- что видит…

спасибо)

Отредактировано ruff3d (Июль 26, 2012 10:04:54)

Офлайн

#10 Июль 26, 2012 10:06:15

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

импорт данных из HTML таблицы через lxml в MySQL

>>> s=[1,2,3]
>>> t="%s"*len(s)
>>> d=t % tuple(s)
>>> d
'123'



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version