scrapy의spider에 매개 변수를 전달하는 몇 가지 방법 (2가지)
첫 번째 방법은 명령줄이crawl로 spider를 제어할 때 -a 옵션을 추가합니다. 예를 들어
scrapy crawl myspider -a category=electronics
그리고 스파이더에 이렇게 쓰세요.
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
def __init__(self, category=None, *args, **kwargs):
super(MySpider, self).__init__(*args, **kwargs)
self.start_urls = ['http://www.example.com/categories/%s' % category]
# ...
즉spider의 구조 함수에 가져온 파라미터를 더하면 된다.두 번째 방법은 scrapyd로spider를 제어할 때schedule로 제어할 수 있다.json 발송-d 옵션은 매개 변수를 추가합니다. 마찬가지로spider의 구조 함수에서 위와 같이 써야 합니다.예:
$ curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider -d setting=DOWNLOAD_DELAY=2 -d arg1=val1
또한 scrapy에서 보내는request에 파라미터를 추가해야 한다면request의meta파라미터를 사용하면 되돌아오는respose 대상에서 전송된 파라미터를 얻을 수 있습니다.이것은 어떤 상황에서 상당히 유용하다. 예를 들어 이 URL이 어떤 사용자가 기어오르기를 요청했는지 확인해야 한다. 먼저 상기 두 가지 방법 중 하나로spider에 정보를 전달할 수 있다.spider는 이 정보를request에 추가한 다음에 해당하는 Reponse에서 이 정보를 URL 페이지에서 얻은 정보와 함께 데이터베이스에 저장할 수 있다.예:
def parse_page1(self, response):
item = MyItem()
item['main_url'] = response.url
request = scrapy.Request("http://www.example.com/some_page.html",
callback=self.parse_page2)
request.meta['item'] = item
return request
def parse_page2(self, response):
item = response.meta['item']
item['other_url'] = response.url
return item
scrapy에 있는spider에 매개 변수를 전달하는 몇 가지 방법(2가지)에 대한 상세한 설명이 여기 있습니다. 더 많은 scrapyspider에 매개 변수를 전달하는 내용은 저희 이전의 글을 검색하거나 아래의 관련 문장을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Web Scraping con scrapy y regexcomo solo tenemos un url se la pasamos directamente a scrapy.Request como string y el callback lo dirigimos a nuestro se...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.