2016-08-24 18 views
0

我试图抢关this pageXPath查询不敛任何信息 - 蟒蛇

一些信息,但有三个数据我一直无法抓住。首先是YDS附近的'5.6'级别,靠近顶部。其次是FFA:P.Adamson,M.Peck 2008年7月,在FA:旁边列出。第三个是Trad,30',在类型旁边列出。

中的XPath查询我是

grade = tree.xpath('//[@id="rspCol800"]/div[1]/div[1]/span/table/tbody/tr[2]/td[2]/text()') 

length = tree.xpath('//*[@id="rspCol800"]/div[1]/div[1]/span/table/tbody/tr[1]/td[2]/text()') 

first_ascent = tree.xpath('.//*[@id="rspCol800"]/div[1]/div[1]/span/table/tbody/tr[3]/td[2]/text()/text()') 

我试图从页面上的几个不同的地方抓住级,因为它是在几个地方,但没有这样的运气还没有上市。任何帮助将你使用的是什么框架将不胜感激

+0

什么与查询发生了,你没试过吗?他们发现不正确的结果吗?他们没有发现什么?他们是否产生错误? –

+0

他们什么都没发现。我正在输出到一个txt文件,从页面抓取的其他信息将以[文本在这里]的形式出现,但这三个字段只产生[] – factor2

回答

0

不知道,但这个似乎工作:

from lxml import html 
import urllib2 
req = urllib2.Request('http://www.mountainproject.com/v/my-other-woman-is-a-hand-crack/107465606') 
response = urllib2.urlopen(req) 
data = response.read() 
tree = html.fromstring(data) 
grade = tree.xpath('//div[@id="rspCol800"]/div[1]/div[1]/span/table/tr[2]/td[2]/span/text()')[1] 
length = tree.xpath('//*[@id="rspCol800"]/div[1]/div[1]/span/table/tr[1]/td[2]/text()')[0] 
first_ascent = tree.xpath('.//*[@id="rspCol800"]/div[1]/div[1]/span/table/tr[3]/td[2]/text()')[0] 

print grade, length, first_ascent 
+0

这个工作!我只在等级查询中遇到了一个问题,它不仅产生了5.6级,而且还产生了所有其他隐藏等级(在该领域内埋藏了多个等级)以及/ xa0等一系列字符。我刚分析过通过字符串抢到它在/ xa0之后遇到的第一个(5.numberhere)。 也为框架我使用lxml和请求,所以我的第一几行结束有点不同,但我不认为它改变任何东西 非常感谢! – factor2

+0

哼,''''''''''''''结尾的''''似乎为我抓了一个单一的5.6。也许,请求库以不同的方式转码页面。你也可以做data = data.replace(“ ”,“”)来摆脱不需要的空间(这就是\ xa)。或者做grade = grade.strip()。 – Maksym