Парсинг HTML - Python

Узнай цену своей работы

Формулировка задачи:

Ну в общем, довольно заезженная тема, проведя на просторах интернета несколько часов, я это понял. Но вопросы все же остались. Суть проблемы, нужно пропарсить сайт - вытащить фотки и названия их соответственно (имя файла == имя продукта). Проблема в том, что сайт табличный и чтобы не перепутать пункт (имя файла == имя продукта) я вытаскиваю целые элементы посредством grab
Листинг программы
  1. g = Grab()
  2. g.go(main_url)
  3. url_block = g.doc.select('//td[@width="50%"]')[0:]
Получаем массив элементов, потом через цикл
Листинг программы
  1. for elem in url_block:
  2. html = elem.html()
  3. print (html)
получаем html каждого блока и вот тут загвоздка - переменная html становится строкой. Мне нужно вытащить оттуда две строчки, основываясь на селекторах, но как к ним обратиться? Я уже поглядываю в сторону регулярных выражений, но чую, что можно и проще сделать. Как - не знаю. Прошу помощи покорнейше З.Ы. Я не тупой, мне просто нужен пинок в правильном направлении

Решение задачи: «Парсинг HTML»

textual
Листинг программы
  1. tree = lxml.html.fromstring(page.text)
  2. imbox = tree.cssselect('td.imboxl')  # все что нужно есть в элементах этого класса
  3.  
  4. for elem in imbox:
  5.      print(elem[0][0].attrib['alt'])     #  имя товара гораздо удобнее прочитать прямо отсюда нежели из соседней таблицы
  6.      print(elem[0][0].attrib['src'])    #  ссылка на изображение в виде data/small/a3_2.jpg"
  7.      print(elem[0].attrib['href'])       #  ссылка на изображение в виде data/big/a3_3.jpg

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут