Scrapy는 인터넷에서 빠르고 유연하게 데이터를 얻는 데 도움이 되는 강력한 Python 크롤러 프레임워크입니다. 실제 크롤링 과정에서 HTML, XML, JSON 등 다양한 데이터 형식을 접하는 경우가 많습니다. 이 기사에서는 Scrapy를 사용하여 세 가지 데이터 형식을 각각 크롤링하는 방법을 소개합니다.
1. HTML 데이터 크롤링
먼저 Scrapy 프로젝트를 만들어야 합니다. 명령줄을 열고 다음 명령을 입력합니다.
scrapy startproject myproject
이 명령은 현재 폴더에 myproject라는 Scrapy 프로젝트를 생성합니다.
다음으로 시작 URL을 설정해야 합니다. myproject/spiders 디렉터리에서 spider.py라는 파일을 만들고 파일을 편집한 후 다음 코드를 입력합니다.
import scrapy class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com'] def parse(self, response): pass
코드는 먼저 Scrapy 라이브러리를 가져온 다음 크롤러 클래스 MySpider를 정의하고 myspider라는 스파이더를 설정합니다. 이름을 지정하고 시작 URL을 http://example.com으로 설정합니다. 마지막으로 구문 분석 방법이 정의됩니다. 구문 분석 메소드는 응답 데이터를 처리하기 위해 기본적으로 Scrapy에 의해 호출됩니다.
다음으로 응답 데이터를 구문 분석해야 합니다. 계속해서 myproject/spiders/spider.py 파일을 편집하고 다음 코드를 추가합니다.
import scrapy class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com'] def parse(self, response): title = response.xpath('//title/text()').get() yield {'title': title}
코드에서는 response.xpath() 메서드를 사용하여 HTML 페이지의 제목을 가져옵니다. 우리가 얻은 제목을 포함하여 사전 유형 데이터를 반환하려면 Yield를 사용하십시오.
마지막으로 Scrapy 크롤러를 실행해야 합니다. 명령줄에 다음 명령을 입력하세요.
scrapy crawl myspider -o output.json
이 명령은 데이터를 output.json 파일로 출력합니다.
2. XML 데이터 크롤링
마찬가지로 먼저 Scrapy 프로젝트를 만들어야 합니다. 명령줄을 열고 다음 명령을 입력합니다.
scrapy startproject myproject
이 명령은 현재 폴더에 myproject라는 Scrapy 프로젝트를 생성합니다.
myproject/spiders 디렉터리에서 spider.py라는 파일을 만들고 파일을 편집한 후 다음 코드를 입력합니다.
import scrapy class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com/xml'] def parse(self, response): pass
코드에서 myspider라는 스파이더 이름을 설정합니다. 시작 URL을 http://example.com/xml로 설정합니다.
계속해서 myproject/spiders/spider.py 파일을 편집하고 다음 코드를 추가합니다.
import scrapy class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com/xml'] def parse(self, response): for item in response.xpath('//item'): yield { 'title': item.xpath('title/text()').get(), 'link': item.xpath('link/text()').get(), 'desc': item.xpath('desc/text()').get(), }
코드에서는 response.xpath() 메서드를 사용하여 XML 페이지. for 루프를 사용하여 item 태그를 순회하고, title, link, desc의 세 태그에서 텍스트 데이터를 얻고, 수확량을 사용하여 사전 유형 데이터를 반환합니다.
마지막으로 Scrapy 크롤러도 실행해야 합니다. 명령줄에 다음 명령을 입력하세요.
scrapy crawl myspider -o output.json
이 명령은 데이터를 output.json 파일로 출력합니다.
3. JSON 데이터 크롤링
마찬가지로 Scrapy 프로젝트를 만들어야 합니다. 명령줄을 열고 다음 명령을 입력합니다.
scrapy startproject myproject
이 명령은 현재 폴더에 myproject라는 Scrapy 프로젝트를 생성합니다.
myproject/spiders 디렉터리에서 spider.py라는 파일을 만들고 파일을 편집한 후 다음 코드를 입력합니다.
import scrapy class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com/json'] def parse(self, response): pass
코드에서 myspider라는 스파이더 이름을 설정합니다. 시작 URL을 http://example.com/json으로 설정합니다.
계속해서 myproject/spiders/spider.py 파일을 편집하고 다음 코드를 추가합니다.
import scrapy import json class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com/json'] def parse(self, response): data = json.loads(response.body) for item in data['items']: yield { 'title': item['title'], 'link': item['link'], 'desc': item['desc'], }
코드에서는 json.loads() 메서드를 사용하여 JSON의 데이터를 구문 분석합니다. 체재. for 루프를 사용하여 항목 배열을 순회하고, 각 항목의 세 가지 속성(제목, 링크, 설명)을 얻고, 수확량을 사용하여 사전 유형 데이터를 반환합니다.
마지막으로 Scrapy 크롤러도 실행해야 합니다. 명령줄에 다음 명령을 입력하세요.
scrapy crawl myspider -o output.json
이 명령은 데이터를 output.json 파일로 출력합니다.
4. 요약
이 글에서는 Scrapy를 사용하여 HTML, XML 및 JSON 데이터를 각각 크롤링하는 방법을 소개했습니다. 위의 예시를 통해 Scrapy의 기본적인 사용법을 이해할 수 있으며, 필요에 따라 더 심화된 사용법도 배울 수 있어 크롤러 기술에 도움이 되기를 바랍니다.
위 내용은 Scrapy의 심층적 사용: HTML, XML 및 JSON 데이터를 크롤링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!