2016-04-14 93 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