很抱歉,如果这是一个愚蠢的问题,但我到处搜索,找不到任何有用的东西。我试图使用Scrapy从页面中提取信息。 HTML看起来像这样:
<a Href="JavaScript:ShowParts('1','58537','RP45%2C+RP60+Compactors+w%2FHatz+1D81S+Eng%2E');">RP45, RP60 Compactors w/Hatz 1D81S Eng.</a>
我希望所有内容都以Href =“之前和之前”开头;这是我的代码。
def parseEngines(self, response):
hxs = HtmlXPathSelector(response)
engines = hxs.select("//a/@href")
print engines
当我打印引擎时,我应该得到这样的东西:
JavaScript:ShowParts('1','58537','RP45%2C+RP60+Compactors+w%2FHatz+1D81S+Eng%2E');
但我只得到这个:
JavaScript:ShowParts('1','58537','RP45%2
就是这样。为什么我只得到一半的字符串?
答案 0 :(得分:1)
hxs.select("//a/@href")
会返回HtmlXPathSelector
个对象,而不是您想要的结果。并且对象的字符串表示形式未满。使用:
engines = hxs.select("//a/@href").extract()
print engines
你可以得到你想要的东西。演示:
>>> a = HtmlXPathSelector(text=s)
>>> a
<HtmlXPathSelector xpath=None data=u'<html><body><a href="JavaScript:ShowPart'>
>>> a.select("//a/@href")
[<HtmlXPathSelector xpath='//a/@href' data=u"JavaScript:ShowParts('1','58537','RP45%2">]
>>> a.select("//a/@href").extract()
[u"JavaScript:ShowParts('1','58537','RP45%2C+RP60+Compactors+w%2FHatz+1D81S+Eng%2E');"]