我的 scrapy 蜘蛛不工作

My scrapy spider is not working

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

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. 正如@Rafael 所说,allowed_domains 是错误的。
  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