当你尝试返回不包含'。'的东西时,scrapy中的lxml模块工作正常。使用text()函数的字符,但是当它们包含'。'时例如'11 .14'查询返回' - '。怎么解决这个问题?
这是我的代码:
stock_price = hxs.xpath('//td[@id="gt1"]//text()').extract()
目标html如下所示:
<td id="gt1" class="txtl green">11.14</td>
只有一个gt1,它总是返回
'-'
而不是
'11.14'
为什么呢?源网址为http://quote.eastmoney.com/sz000001.html
尝试使用其他几个数据源,只要文本字段包含'。',它就会返回' - ',否则一切都很好。这是环境问题吗?
答案 0 :(得分:1)
那是因为在页面源中,td
标记内部实际上有' - '。您在浏览器中看到的最终结果可能是使用开发人员工具看到的,可能是由某些JavaScript提供的。所以你可以使用例如启动以呈现页面并从响应中提取if,或者如果不使用某些API则尝试浏览页面。当我在XHR请求中查看Chrome中的开发人员工具时,我可以看到一些电话。
答案 1 :(得分:0)