Python 파충류 프레임 워 크 Scrapy 기본 용법 입문 강좌

이 글 의 사례 는 Python 파충류 프레임 워 크 Scrapy 의 기본 용법 을 다 루 었 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
Xpath

<html>
<head>
  <title>  </title>
</head>
<body>
  <h2>    </h2>
  <p>  1</p>
  <p>  2</p>
</body>
</html>

상기 html 코드 에서 h2 의 내용 을 얻 으 려 면 다음 코드 를 사용 하여 얻 을 수 있 습 니 다.

info = response.xpath("/html/body/h2/text()")

이 를 통 해 알 수 있 듯 이/html/body/h2 는 내용 의 차원 구조 이 고text()는 h2 라벨 을 가 져 온 내용 입 니 다.//p모든 p 탭 을 가 져 옵 니 다.구체 적 인 속성 이 있 는 탭 가 져 오기://탭[@속성="속성 값"]

<div class="hide"></div>

class 를 hide 로 하 는 div 탭 가 져 오기

div[@class="hide"]

예 를 들 어 Google Chrome 브 라 우 저의 Console 인터페이스 에서$x['//h2']명령 을 사용 하여 페이지 의 h2 요소 정 보 를 가 져 옵 니 다.

xmlfeed 템 플 릿
xmlfeed 템 플 릿 을 만 드 는 파충류

scrapy genspider -t xmlfeed abc iqianyue.com

핵심 코드:

from scrapy.spiders import XMLFeedSpider
class AbcSpider(XMLFeedSpider):
  name = 'abc'
  start_urls = ['http://yum.iqianyue.com/weisuenbook/pyspd/part12/test.xml']
  iterator = 'iternodes' #    ,   iternodes,                 。  iternodes,  “html” “xml”
  itertag = 'person' #        (  )    
  # parse_node                  
  def parse_node(self, response, selector):
    i = {}
    xpath = "/person/email/text()"
    info = selector.xpath(xpath).extract()
    print(info)
    return i

csvfeed 템 플 릿
csvfeed 템 플 릿 을 만 드 는 파충류

scrapy genspider -t csvfeed csvspider iqianyue.com

핵심 코드

from scrapy.spiders import CSVFeedSpider
class CsvspiderSpider(CSVFeedSpider):
  name = 'csvspider'
  allowed_domains = ['iqianyue.com']
  start_urls = ['http://yum.iqianyue.com/weisuenbook/pyspd/part12/mydata.csv']
  # headers     csv                 
  headers = ['name', 'sex', 'addr', 'email']
  # delimiter        
  delimiter = ','
  def parse_row(self, response, row):
    i = {}
    name = row["name"]
    sex = row["sex"]
    addr = row["addr"]
    email = row["email"]
    print(name,sex,addr,email)
    #i['url'] = row['url']
    #i['name'] = row['name']
    #i['description'] = row['description']
    return i

크롤 피 드 템 플 릿
crawlfeed 템 플 릿 을 만 드 는 파충류

scrapy genspider -t crawlfeed crawlspider sohu.com

핵심 코드

class CrawlspiderSpider(CrawlSpider):
  name = 'crawlspider'
  allowed_domains = ['sohu.com']
  start_urls = ['http://sohu.com/']
  rules = (
    Rule(LinkExtractor(allow=r'Items/'), callback='parse_item', follow=True),
  )
  def parse_item(self, response):
    i = {}
    #i['domain_id'] = response.xpath('//input[@id="sid"]/@value').extract()
    #i['name'] = response.xpath('//div[@id="name"]').extract()
    #i['description'] = response.xpath('//div[@id="description"]').extract()
    return i

위의 코드 rules 부분 에 있 는 링크 Extractor 는 연결 추출 기 입 니 다.
LinkExtractor 에 대응 하 는 매개 변수 및 의미
매개 변수 이름
매개 변수 의미
allow
정규 표현 식 에 맞 는 링크 추출
deny
정규 표현 식 에 맞 는 링크 를 추출 하지 않 음
restrict_xpaths
XPath 표현 식 과 allow 의 공동 작용 을 사용 하여 XPath 표현 식 과 정규 표현 식 에 대응 하 는 링크 를 추출 합 니 다.
allow_domains
도 메 인 이름 을 추출 할 수 있 습 니 다.예 를 들 어 도 메 인 이름 의 링크 만 추출 하려 고 할 때 사용 합 니 다.
deny_domains
추출 한 도 메 인 이름
더 많은 파 이 썬 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기