2017-03-15 9 views
-1

에 나는이 페이지를 긁어 시도 :XPATH는 크롬에서 작동하지만,하지 Scrapy

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

print response.xpath('//tr') 

을하지만 그것은 XPATH는 크롬 개발 도구에서 작동하지만 Scrapy에, 이상해. response.body을 통해 스크랩 한 HTML을 검사했는데 HTML이 정상입니다.

+0

XPATH는 FireFox에서도 작동한다. 어쩌면 잠재적 인 오류가 나타날 수 있도록 전체 스파이더 코드를 게시 할 수 있습니다. –

답변

3

답을 찾았습니다. HTML이 깨져서 Scrapy가 직접 고칠 수는 없으므로 Beautiful Soup 도움말이 필요합니다. 나는 이것을 좋아한다 :

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