1. scrapy shell
은 scrapy 패키지의 좋은 대화형 도구로 현재는 xpath 선택 결과를 확인하는 데 주로 사용합니다. scrapy를 설치한 후 cmd에서 직접 scrapy 쉘을 작동할 수 있습니다.
Scrapy Shell
Scrapy 터미널은 스파이더를 시작하지 않고도 코드를 시도하고 디버그할 수 있으며 XPath 또는 CSS 표현식이 어떻게 작동하는지 확인하는 데에도 사용할 수 있으며 이는 웹 페이지 크롤링을 용이하게 합니다. 에서 추출한 데이터.
IPython이 설치된 경우 Scrapy 터미널은 표준 Python 터미널 대신 IPython을 사용합니다. IPython 터미널은 지능적인 자동 완성, 강조 표시된 출력 및 기타 기능을 제공하여 다른 터미널보다 더 강력합니다. (IPython 설치 권장)
스크래피 쉘 시작
프로젝트의 루트 디렉터리에 들어가서 다음 명령을 실행하여 쉘을 시작합니다.
scrapy shell "http://www.itcast.cn/channel/teacher .shtml"
Scrapy Shell은 다운로드된 페이지를 기반으로 Response 개체 및 Selector 개체(HTML 및 XML 콘텐츠용)와 같은 몇 가지 편리한 개체를 자동으로 생성합니다.
셸이 로드되면 응답 데이터가 포함된 로컬 응답 변수를 얻게 됩니다. 응답 본문을 출력하려면 response.body를 입력하고, 응답 헤더를 보려면 response.headers를 출력하세요.
response.selector를 입력하면 response로 초기화된 Selector 클래스의 객체를 얻게 됩니다. 이때 response.selector.xpath() 또는 response.selector.css()를 사용하여 응답을 쿼리할 수 있습니다.
Scrapy는 또한 (이전 사례처럼) 적용될 수 있는 response.xpath() 또는 response.css()와 같은 몇 가지 단축키를 제공합니다.
선택기
Scrapy 선택기에는 XPath 및 CSS 선택기 표현 메커니즘이 내장되어 있습니다.
Selector에는 4가지 기본 메서드가 있으며 가장 일반적으로 사용되는 방법은 xpath입니다.
xpath(): xpath 표현식을 전달하고 선택기를 반환합니다. 모든 해당 노드 목록
extract(): 노드를 유니코드 문자열로 직렬화하고 목록을 반환
css(): CSS 표현식을 전달하고 표현식에 해당하는 모든 노드의 선택기 목록을 반환합니다. 구문은 다음과 같습니다. BeautifulSoup4
re()와 동일: 들어오는 정규식에 따라 데이터를 추출하고 유니코드 문자열 목록 목록을 반환합니다
2. ipython
공식에서는 ipython을 사용하는 것이 좋습니다. 웹사이트 scrapy shell을 실행해서 설치해 보았습니다. 내 Python 환경은 이전에 conda를 통해 구성되었기 때문에(이전 기사 참조) conda를 통해 ipython을 설치하는 것이 매우 편리합니다
conda install -c conda-forge ipython
그러면 전체 ipython 패키지가 다운로드됩니다. 모두 컴파일되었기 때문에 더 이상 귀찮은 일이 아닙니다. 프로세스가 실패했습니다.
3. ipython 및 scrapy shell on ipython
현재 cmd 실행 상자에서는 시스템 환경이 구성되어 있기 때문에 Python 패키지를 직접 실행할 수 있으므로 cmd 실행 상자에 직접 입력하세요. ipython을 ipython에 추가하면 시스템 표준 cmd와 유사하지만 더 풍부한 기능, 더 풍부한 색상 및 더 나은 레이아웃을 갖춘 ipython 실행 상자에 들어갑니다.
근데 scrapy shell 명령을 직접 입력하면 그런 명령이 없다고 계속해서 실패합니다. 여기에 갇혀 있습니다.
나중에, scrapy shell의 지침을 주의 깊게 읽으십시오
IPython이 설치되어 있으면 Scrapy 쉘이 (표준 Python 콘솔 대신) 이를 사용하게 됩니다.
scrapy 쉘이 ipython을 찾는 방법은 다음과 같습니다. 그 자체.
그래서 cmd의 표준 실행 상자에 scrapy shell
위 내용은 xpath 선택 결과를 확인하기 위해 scrapy shell을 사용하는 방법에 대한 자세한 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!