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 |
댓글