1
私はスクラップチュートリアルhereに従っています。私はチュートリアルと同じコードを持っていると思いますが、私のスクレーパーは最初のページを擦ってから、最初のRequest
に関する次のメッセージを別のページに出して終了します。おそらく私の2番目のyield
ステートメントが間違った場所にありますか?スクレイパースクレーパーは1ページ目をこすりません
DEBUG: 'newyork.craigslist.org' にオフサイトリクエストをろ過:https://newyork.craigslist.org/search/egr?s=120>
2017年5月20日18時21分:31 [scrapy.core.engine] INFO:閉会蜘蛛(完成品)
は、ここに私のコードです:
import scrapy
from scrapy import Request
class JobsSpider(scrapy.Spider):
name = "jobs"
allowed_domains = ["https://newyork.craigslist.org/search/egr"]
start_urls = ['https://newyork.craigslist.org/search/egr/']
def parse(self, response):
jobs = response.xpath('//p[@class="result-info"]')
for job in jobs:
title = job.xpath('a/text()').extract_first()
address = job.xpath('span[@class="result-meta"]/span[@class="result-hood"]/text()').extract_first("")[2:-1]
relative_url = job.xpath('a/@href').extract_first("")
absolute_url = response.urljoin(relative_url)
yield {'URL': absolute_url, 'Title': title, 'Address': address}
# scrape all pages
next_page_relative_url = response.xpath('//a[@class="button next"]/@href').extract_first()
next_page_absolute_url = response.urljoin(next_page_relative_url)
yield Request(next_page_absolute_url, callback=self.parse)