크롤링하고 싶은 데이터가 있는 사이트 상의 HTML 문서에서 데이터 선택하는 방법
selector 방식에는 css, xpath가 있다.
response.xpath('//base/@href').extract()의 의미는 parse 함수에서 사이트를 돌고 난 뒤 response를 반환하는데 이 response에는 사이트 문서가 있다. 문서를 xpath라는 selector를 사용해서 태그에 접근한다는 것이다. //의 의미는 모든 자식을 의미한다. //base이니까 모든 base 태그를 선택하는 것이다. /@href는 자식 중에 속성이 href인 것을 선택하는 것이다. extract()는 선택한 것을 리스트 형식으로 추출한다는 것이다.
scrapy 문서상에선 extract_first() 대신 get()을 쓰고 extract() 대신 getall()을 쓰라고 한다.
response.xpath('//base/@href').extract()는 response.css('base::attr(href)').extract()와 같다.
resopnse.xpath('//a[contains(@href, "image")]/@href').extract()는 response.css('a[href*=image]::attr(href)').extract()와 같다.
response.xpath('//a[contains(@href, "image")]/img/@src').extract()는 response.css('a[href*=image] img::attr(src)').extract()와 같다.
'Python' 카테고리의 다른 글
Mac OS 파이썬 가상 환경 만들기 pyenv, virtualenv (0) | 2019.03.24 |
---|---|
Scrapy IndexError: list index out of range (0) | 2019.02.24 |
웹 크롤링 이슈 - 저작권, 사이트 크롤링 정책 (0) | 2019.02.24 |
T-Rex Game Bot (0) | 2018.06.17 |
ImportError: cannot import name 'MongoClient' (4) | 2018.05.29 |