본문 바로가기
Scrapy

[Scrapy] 03. Following links

by KIha_Jung 2020. 4. 1.

url : http://quotes.toscrape.com

contents

1. 다음 링크를 재귀적으로 따라가기

2. scrapy.Request() 사용법

3. response.follow() 사용법

4. response.follow_all() 사용법



1. Following links

순서 : 해당 url에서 데이터 추출 -> 다음 링크(url)을 찾음 -> 다음 페이지에 대한 새로운 요청 생성 -> 콜백 등록

urljoin() : 링크가 상대적일 수 있으므로 사용한다.

해당 사이트에서 a::("href")의 결과는 절대 경로인 /page/6/ 이다.

urljoin() function을 사용하여 http://quotes.toscrape.com/page/6/ 로 바꿔줄 수 있다.

 

2. response.follow()

scrapy version 2.0 부터 지원.

scrapy.Request와 달리 response.follow 는 상대 url을 직접 지원하여 urljoin()을 호출 할 필요가 없다.

요청 인스턴스를 반환하고 반드시 callback을 해야 한다. 

response.follow()는 자동으로 href 속성을 사용한다. 코드를 더 단축시킬 수 있다.

 

3. response.follow_all()

scrapy.follow_all() 은 iterable object를 넣어준다.

* 참고 : yield from

yield from 으로 요소를 한 개씩 바깥으로 전달한다.

 

(1) 기본적인 resonpse.follow(), response.follow_all() 사용법이다.

 

 

(2) response.follow_all()을 사용한 실습

'Scrapy' 카테고리의 다른 글

[Scrapy] 06. Scrapy Spider 활용  (0) 2020.04.08
[Scrapy] 05. Shell 사용법  (0) 2020.04.07
[Scrapy] 04. Spider 활용  (0) 2020.04.01
[Scrapy] 02. 데이터 추출 (get vs extract)  (0) 2020.04.01
[Scrapy] 01. Scrapy 생성  (0) 2020.04.01

댓글