2019/11/19 - [Back-end/Python] - [크롤링] 무작정 시작하기 (1) - 패키지 선택
2019/11/19 - [Back-end/Python] - [크롤링] 무작정 시작하기 (2) - 프로젝트 준비
2019/11/19 - [Back-end/Python] - [크롤링] 무작정 시작하기 (3) - Spider
2019/11/20 - [Back-end/Python] - [크롤링] 무작정 시작하기 (4) - Selenium + Scrapy
이번 포스트는 아주 아주 간단하다. Response의 결과값을 처리하고 반환할 때 Dict과 Item Object를 선택해서 사용할 수 있는데 이번 포스트는 이 중 Item Object를 반환하도록 적용하는 방법을 소개하도록 하겠다.
1. Item Class 작성.
1-1. items.py.
1
2
3
|
class NavernewsItem(scrapy.Item):
title = scrapy.Field()
author = scrapy.Field()
|
cs |
2. Spider에 적용.
2-1. Import 및 Item 적용.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
from crawler.items import NavernewsItem
...
def parse(self, response):
contents = response.xpath('//*[@id="main_content"]/div[1]/ul/li')
for content in contents:
title = content.xpath('a/text()').extract_first()
author = content.xpath('span[1]/text()').extract_first()
item = NavernewsItem()
item['title'] = title.strip() if title else title
item['author'] = author.strip() if author else author
print( item )
yield item
|
cs |
- 12-15 ln: 아이템을 생성하고 데이터를 대입.
이상으로 이번 포스트를 마치겠다(?). 간단해도 너무 간단하다. Item에 대해서는 더이상 다룰 만한게 없다. 굳이 덧붙이자면 Dictionary로 반환하면 가변적인 컬럼들을 저장할 수 있고, Item으로 반환하면 정해진 값 외에는 오류를 반환할 수 있어서 원하는 값을 얻고자할 때 핸들링하기 쉽다는 점이다. 크롤링할 때 수집할 데이터의 특성을 잘 파악하고 선택하여 사용하길 바란다.
이상으로 무작정 시작하기 크롤러 편을 마치기로 하겠다. 추후에 File 및 Image 다운로드에 대해서 다루도록 하겠다.
'Back-end > Python' 카테고리의 다른 글
[크롤링] 무작정 시작하기 (7) - scrapyd (0) | 2019.11.27 |
---|---|
[크롤링] 무작정 시작하기 (6) - 파일 다운로드 (0) | 2019.11.24 |
[크롤링] 무작정 시작하기 (4) - Selenium + Scrapy (0) | 2019.11.20 |
[크롤링] 무작정 시작하기 (3) - Spider (0) | 2019.11.19 |
[크롤링] 무작정 시작하기 (2) - 프로젝트 준비 (0) | 2019.11.19 |
댓글