2017-03-15 10 views
-1

に私はこのページをこすりしようとしません:XPATHはChromeで動作しますが、Scrapy

https://www.cimbbank.com.sg/en/personal/support/help-and-support/rates-and-charges.html

print response.xpath('//tr') 

しかし、それは奇妙だ、XPATHはChromeのみ開発ツールではなく、Scrapy上で動作します。私はresponse.body経由で掻き集めたHTMLをチェックし、HTMLは正常です。

+0

XPATHはFireFoxでも動作します。だから多分潜在的なエラーが表示されるように完全なスパイダーコードを投稿することができます。 –

答えて

3

答えを見つけました。 HTMLが壊れていて、Scrapyがそれを独自に修正できないことが判明したので、美しいスープのヘルプが必要です。私は次のようにします:

from scrapy.selector import Selector 

from bs4 import BeautifulSoup 

fixed_html = str(BeautifulSoup(response.body, "lxml")) 

print Selector(text=fixed_html).xpath('//*') 
+1

[html5lib](https://pypi.python.org/pypi/html5lib)を使用する方法もあります。 –

+0

はい、私はhtml5libがbeautifulsoupの直前にそれを取得すると信じています。 – pguardiario

関連する問題