XPath how to get Python -
i'm trying xpath text in illustration below "7061 main st"
<td rowspan="2"> <font face="arial,helvetica" size="-1"> 7061 main st </font> </td>
however it's not working me. tried next below , won't work. on search in source that's 1 has attribute rowspan="2"
searchresults = tree.xpath('//*[@rowspan="2"]/@text') self.response.out.write(searchresults) searchresults = tree.xpath('//*[@rowspan="2"]/font/@text') self.response.out.write(searchresults) searchresults = tree.xpath('//*[@rowspan="2"]/font[text()]') self.response.out.write(searchresults)
what shoudl text?
thanks!
searchresults = tree.xpath('//td[@rowspan="2"]/font/text()')
will create searchresults
equal list
['\n\n\n 7061 main st\n\n ']
(note may want utilize str.strip
method remove whitespace both ends of string.)
@text
refers attribute text
. example, rowspan
attribute of td
, , face
attribute of font
. here, want actual text, not attribute. utilize text()
instead. also, if omit font
xpath, in
//td[@rowspan="2"]/text()
then retrieving text associated td
tag. empty in html posted. want text associated font
tag, include font
in xpath:
//td[@rowspan="2"]/font/text()
finally, know brackets [...]
indicate "such that" relationship in xpath. example, td[@rowspan="2"]
matches td
tags such that rowspan
attribute equals "2"
. font[text()]
matchs font
tags such that contains text()
. returns font
tag itself. since want text, not tag, utilize font/text()
instead of font[text()]
. python xpath
No comments:
Post a Comment