Найти - Пользователи
Полная версия: импорт данных из HTML таблицы через lxml в MySQL
Начало » Python для новичков » импорт данных из HTML таблицы через lxml в MySQL
1 2 3 4
ruff3d
Доброго всем дня!
Заранее извиняюсь за нубовский вопрос…
Пишу парсер, все работает… вот только не могу сообразить алгоритм для импорта HTML таблици в MySQL

делал так:
for trs in doc.cssselect('table tr'):
        for tr in trs:
             tds = tr.cssselect('td')

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

или зря я обратился в раздел для новичков?
reclosedev
Схема у таблицы в БД какая? Как ее создаете?
ruff3d
сначала создаю поля таблицы в БД …. все поля текстовые и соответствуют полям таблицы HTML

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

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

Должно же быть какое-то соответствие: столбец в HTML - столбец в таблице БД.
PooH
Совершенно не понял в чем проблема. Раз колонки таблицы соответствуют полям в базе, собирайте значения всех ячеек в строке в список, а потом биндите в запрос ‘INSERT’.
ruff3d
В том-то и вопрос. В список данные я могу собрать. И потом в цикле его разобрать в БД.

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

дайте кусочек кода…
reclosedev
ruff3d
В том-то и вопрос. В список данные я могу собрать. И потом в цикле его разобрать в БД.
Примерно так и должно быть.
ruff3d
дайте кусочек кода
Давно бы уже свой показали, если что не так, поправит кто-то.
ruff3d
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]))


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

спасибо)
FishHook
>>> s=[1,2,3]
>>> t="%s"*len(s)
>>> d=t % tuple(s)
>>> d
'123'
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB