2017-05-20 7 views
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) 

答えて

1

[OK]をので、私はそれを考え出しました。

allowed_domains = ["newyork.craigslist.org"] 

、今では動作します。これに

allowed_domains = ["https://newyork.craigslist.org/search/egr"] 

:私は、この行を変更しなければなりませんでした。

関連する問題