我的 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
好吧,我再指出两个错误。可能还有更多。
- 正如@Rafael 所说,
allowed_domains
是错误的。
- 缩进在 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
我试图制作一个可以爬行 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
好吧,我再指出两个错误。可能还有更多。
- 正如@Rafael 所说,
allowed_domains
是错误的。 - 缩进在 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