python 파충류 scrapy 0 부터 잡기 배우 기 (2)
선택 기 selectors 사용 하기:
우선 명령 행 인터페이스 에서 셸: scrapy 셸 을 엽 니 다. "http://quotes.toscrape.com/page/1/"차 로 돌아 가세 요."
#Selector :
1.xpath(): xpath , selector list
2.css(): css , selector list
3.extract(): unicode list
4.re(): , Unicode list
1. xpath 사용response. xpath ('xpath 표현 식')
\ # \ # \ # \ # 몇 개의 표현 식 \ # \ # \ # \ # \ # \ #
/: 루트 노드 에서 선택
/ /: 일치 하 는 현재 노드 에서 문서 의 노드 를 선택 하고 위 치 를 고려 하지 않 습 니 다.
.: 현재 노드 선택
...: 현재 노드 의 부모 노드 선택
@: 속성 선택
몇 가지 간단 한 예:
response.xpath('/html/head/title') -- HTML head title
response.xpath('/html/head/title/text()')-- title
response.xpath('//title')-- title
response.xpath('//div[@class="name"')-- class="name" div
response.xpath('//a[contains(@href,"image")]/@href')-- image , contains
2. css 의 사용response. css ('css 표현 식') \ # \ # \ # 몇 가지 간단 한 예 \ # \ # \ # \ # # \ # \ #
response.css('title::text')-- title
3. extract 의 사용respnse.xpath('//ul/li/a/@href').extract()--
4. re 의 사용 및 정규 표현 식 :1). —— ;
2)\d —— 0-9
3)\D ——
4)\s ——
5)\S ——
6)\w ——
7)\W ——
8)* —— 0
9)+ —— 1
10)? —— 0 1
11)^ ——
12)$ ——
13)()—— , 1
14)(?P...)—— ... , name
15)\ ——
16)(?P=name)——
17){m} —— m
18){m,n} —— m n , m, 0-n ; n, m 19)[] —— 20)^ ——
주의: ^ [] 에 나타 나 는 것 은 부정적인 뜻 입 니 다. "[]" 는 문자 집합 을 대표 합 니 다. "^" 문자 집중 만 이 역방향 문자 집합 이라는 뜻 입 니 다.이전 예 에서 코드 수정:
def parse(self, response):
for quote in response.css('div.quote'):
yield {
'text': quote.css('span.text::text').extract_first(),
'author': quote.css('small.author::text').extract_first(),
'tags': quote.css('div.tags a.tag::text').extract(),
}
운행 결과2018-01-29 09:21:55 [scrapy.core.scraper] DEBUG: Scraped from <200 http://quotes.toscrape.com/page/1/>
{'text': u'\u201cIt is our choices, Harry, that show what we truly are, far more than our abilities.\u201d',
'tags': [u'abilities', u'choices'], 'author': u'J.K. Rowling'}
구체 적 이 고 깊이 있 는 사용 참고:http://www.bubuko.com/infodetail-2172861.html상세 하 다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.