2016-04-14 128 views
1

我试图制作一个抓取tripadvisor.in来提取一些数据的蜘蛛,但我不知道为什么它不起作用。我的项目名称是spidey.Here是我做出的蜘蛛::我的scrapy蜘蛛不起作用

import scrapy 
from scrapy.selector import Selector 
from spidey.items import tripad 


class DmozSpider(scrapy.Spider): 
    name="spidey" 
    allowed_domains=["https://www.tripadvisor.in"] 
    start_urls=['https://www.tripadvisor.in/Attractions-g297604-Activities-Goa.html'] 
    def parse(self, response): 
    sel=Selector(response) 

    sites=sel.xpath('//div[@id="FILTERED_LIST"]/div[@class="tmHide"]/div[@class="element_wrap"]/div[@class="wrap al_border attraction_element"]/div[@class="entry al_offer_group"]/div[@class="property_title"]').extract() 
    items=[] 
    for site in sites: 
     item=tripad() 
     item['name']=site.xpath('//h1[@id="HEADING" class="heading_name"]/text()').extract() 
     items.append(item) 

    return items 

回答

1

嗯,我会点两个错误。可能还有更多。

  1. As @Rafael said,allowed_domains is wrong。
  2. 缩进在Python中绝对重要。你的错误。

喜爱

我试图让用于抓取tripadvisor.in提取一些数据的蜘蛛,但我不知道为什么它不工作。我的项目名称是spidey.Here是我制造的蜘蛛::

import scrapy 
from scrapy.selector import Selector 
from spidey.items import tripad 

class DmozSpider(scrapy.Spider): 
    name="spidey" 
    allowed_domains=["tripadvisor.in"] 
    start_urls=['https://www.tripadvisor.in/Attractions-g297604-Activities-Goa.html'] 
    def parse(self, response): 
     sel=Selector(response) 

     sites=sel.xpath('//div[@id="FILTERED_LIST"]/div[@class="tmHide"]/div[@class="element_wrap"]/div[@class="wrap al_border attraction_element"]/div[@class="entry al_offer_group"]/div[@class="property_title"]').extract() 
     # I prefer to yield items: 
     for site in sites: 
      item=tripad() 
      item['name']=site.xpath('//h1[@id="HEADING" class="heading_name"]/text()').extract() 
      yield item