Найти - Пользователи
Полная версия: html xpath (replace | strip)
Начало » Python для новичков » html xpath (replace | strip)
1
papuas
s = requests.Session()
url = "http:127.0.0.1/index"
passwd = "12345"
r = s.post(url, passwd)
g = s.get('url')
doc = lxml.html.document_fromstring(g.text)
v = doc.xpath('//tr[1]/td[2]/text()[1]')
print v
на выводе
[u'\xa0 \n                  PARSE ME \xa0\xa0\xa0&nbsp PARSE ME:CE&nbsp(', 'ok']
а хотелось бы 
[PARSE ME: PARSE ME]
отсюда 2 вопроса:
1. Почему если в doc.xpath('html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/text()') полный путь (copy xpath text) то это не работает?
2. как отрезать лишние аски ?
regex,replace, не помогли…

py.user.next
Вот тебе пример
>>> import lxml.html
>>> 
>>> doc = lxml.html.fromstring('<b>abcd</b>')
>>> text = doc.xpath(r'//b/text()')[0]
>>> text
'abcd'
>>>
papuas
спасибо, решил так:

doc = lxml.html.document_fromstring(g.text)
v = doc.xpath('//tr[1]/td[2]/text()[1]')
v1 = re.search('regexp', v[0].encode('utf-8'))
print v1.group(0)

py.user.next
Не надо у text() брать первый элемент. А v1.group(0) даст “regexp” в любом случае, поэтому достаточно просто проверить v1 на None.
papuas
py.user.next
Не надо у text() брать первый элемент. А v1.group(0) даст “regexp” в любом случае, поэтому достаточно просто проверить v1 на None.
извиняюсь за пример, на практике
regexp text() без [1]
поясните пожалуйста надобность проверки v1 на None
и как в таком случае print v1 ?
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