Форум сайта python.su
Не могу понять в чем дело
Пытаюсь распарсить страницу http://www.spr.kz/all/himicheskie-zavodi/,получить названия и адреса предприятий.
Названия получил, а с адресами засада.
Порядок моих действий:
( тела документа в дерево элементов уже преобразовано, использую библиотеку lxml)
1. получаю путь Xpath нужного элемента страницы c помощью FirePath
2. Делаю запрос, используя полученный путь:
adress = parsed_body.xpath('html/body/center/div[1]/table[3]/tbody/tr[3]/td[1]/table/tbody/tr/td[2]/a/text()'
Офлайн
весь код покажите
Офлайн
adress = parsed_body.xpath('html/body/center/div[1]/table[3]/tbody/tr[3]/td[1]/table/tbody/tr/td[2]/a').text
Отредактировано malya (Март 4, 2015 16:35:18)
Офлайн
import requests from lxml import html #1. Создаем объект Response данной страницы r = requests.get('http://www.spr.kz/all/himicheskie-zavodi/') #Превращаем данные тела объекта в дерево pb = html.fromstring(r.text) #получаем список названий: names = [] for i in range(46): x = pb.xpath('.//*[@id="head'+str(i)+'"]/text()') names += x #теперь хочу получить адреса #(получил путь xpath через firepath) #пытаюсь получить данные хотя бы с одного элемента adress = pb.xpath('html/body/center/div[1]/table[3]/tbody/tr[3]/td/table/tbody/tr/td[2]/a/text()')
Отредактировано Bone_machine (Март 5, 2015 03:24:32)
Офлайн
import requests from lxml import html r = requests.get('http://www.spr.kz/all/himicheskie-zavodi/') pb = html.fromstring(r.text) names = [] for i in pb.xpath('.//*[starts-with(@id, "head")]'): names.append(i.text) adress = i.xpath('../../table/tr/td/a[@class="adres"]/text()')[0] print(adress)
Офлайн