스크래피 스파이더가 빈파일을 출력하는 이유를 모르겠어요!
- 1
-
0
책('파이썬을 이용한 웹크롤링과 스크레이핑' )에 첨부된 ch6-1의 myspider.py 입니다.
- import scrapy class BlogSpider(scrapy.Spider): # spider의 이름 name = 'blogspider' # 크롤링을 시작할 URL 리스트 start_urls = ['https://blog.scrapinghub.com'] def parse(self, response): for url in response.css('ul li a::attr("href")').re('.*/category/.*'): yield scrapy.Request(response.urljoin(url), self.parse_titles) def parse_titles(self, response): for post_title in response.css('div.entries > ul > li a::text').extract(): yield {'title': post_title}
0
댓글
작성한 댓글 등록하기
안녕하세요.
크롤링하는 URL인 "https://blog.scrapinghub.com" 의 HTML이 예제코드와 다릅니다.
예제 코드가 작성되고 난 이후에 해당 사이트의 HTML이 수정된 것으로 추측되어 지네요.
아래와 같이 예제코드를 변경하고 scrapy를 실행하면 스크래핑이 되네요.
- import scrapy
- class BlogSpider(scrapy.Spider):
- # spider의 이름
- name = 'blogspider'
- # 크롤링을 시작할 URL 리스트
- start_urls = ['https://blog.scrapinghub.com']
- def parse(self, response):
- for url in response.css('ul li a::attr("href")').re('.*/tag/.*'):
- yield scrapy.Request(response.urljoin(url), self.parse_titles)
- def parse_titles(self, response):
- for post_title in response.css('div.post-header > h2 > a::text').extract():
- yield {'title': post_title}
이 답변으로 문제를 해결하셨다면 채택 부탁드릴게요!
답변 작성
질문에 적합한 답변을 상세히 작성해 주시기 바랍니다.
답변이 찬성되면 태그평판 +2점이 적립, 반대되면 태그평판 -1점 차감됩니다.
답변이 채택되면 태그평판 +10점이 적립됩니다.