Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 刮痧';s HTMLX路径选择器原因';分段错误';解析html页面时_Python_Scrapy - Fatal编程技术网

Python 刮痧';s HTMLX路径选择器原因';分段错误';解析html页面时

Python 刮痧';s HTMLX路径选择器原因';分段错误';解析html页面时,python,scrapy,Python,Scrapy,发生“分段故障”,scrapy停止运行。 在检查网站url后,我发现它应该属于一个带有 href属性,但没有值。像这样:“” 我怀疑这是由lxml引起的。那么lib,如何处理呢?在 至少要防止卡盘停止问题。 我的代码片段: hxs = HtmlXPathSelector(response) sites = hxs.select('//a') for site in sites: list_title= site.select('text()').extract() list_link

发生“分段故障”,scrapy停止运行。 在检查网站url后,我发现它应该属于一个带有 href属性,但没有值。像这样:“
” 我怀疑这是由lxml引起的。那么lib,如何处理呢?在 至少要防止卡盘停止问题。 我的代码片段:

hxs = HtmlXPathSelector(response)
sites = hxs.select('//a')
for site in sites:
   list_title= site.select('text()').extract()
   list_link = site.select('./@href').extract() #????(crash here when parsing <a href></a>)
hxs=htmlxpath选择器(响应)
sites=hxs.select('//a')
对于站点中的站点:
list_title=site.select('text()').extract()
list_link=site.select('./@href').extract()#?(解析时在此崩溃)
顺便说一句,网站被刮了'http://mil.news.sohu.com/' 运行环境:scrapy 0.15.1和python 2.7.3,预安装openssl0.12,因为scrapy的openssl0.13默认值没有成功安装

非常感谢
亚伦

我已经解决了这个问题。这是由scrapy默认安装的libxml2版本2.6.26引起的。将libxml2更新为2.7.4,已解决。

我已解决此问题。这是由scrapy默认安装的libxml2版本2.6.26引起的。将libxml2更新为2.7.4,已解决。

要么他们重新引入了该错误,要么肯定是其他原因导致了该错误:

me:~$ scrapy version -v
Scrapy  : 0.16.3
lxml    : 3.0.2.0
libxml2 : 2.7.8
Twisted : 12.0.0

要么是他们重新引入了这个bug,要么是另一个原因导致了这个问题:

me:~$ scrapy version -v
Scrapy  : 0.16.3
lxml    : 3.0.2.0
libxml2 : 2.7.8
Twisted : 12.0.0

href的正确XPath可能是
@href
?@href和./@href都适用于格式良好的HTML。你能在你的机器上测试一下吗?href的正确XPath可能是
@href
?@href和./@href都适用于格式良好的HTML。你能在你的机器上测试一下吗?