零碎的空输出,但数据被刮除

2024-10-05 20:11:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在抓取一个网站并试图将输出保存在MongoDB中。看起来代码没问题,但是当我尝试一个简单的输出(scrapy crawl IR-o)时项目.json-t json)文件显示为空。。。但是蜘蛛的日志显示数据被刮走了。。。在

这是我的蜘蛛代码

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from teste.items import IngressoRapidoItem

class IngressoRapidoSpider(BaseSpider):
   name = "IR"
   allowed_domains = ["ingressorapido.com.br"]
   start_urls = (
        'http://www.ingressorapido.com.br/eventos.aspx?genero=55',
         )

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        items = []
        item = IngressoRapidoItem()
        item['banda'] = hxs.select('normalize-space(//a[contains(@href,"Evento")]    /text())').extract()
        item['local'] = hxs.select('normalize-space(//td/span[contains(@style,     "normal")]/text())').extract()
        items.append(item)
        return items

有人猜到为什么即使数据被刮取,输出也是空的? 提前谢谢


Tags: 数据代码fromimportjsoniritemsitem
1条回答
网友
1楼 · 发布于 2024-10-05 20:11:00

在运行了上面发布的代码之后,我可以确认数据是被刮取的,但是这些数据是否真的有用很难说,因为只有一个项目创建了场馆,但没有活动名称。在

我稍微修改了xpath代码,并且能够为http://www.ingressorapido.com.br/eventos.aspx?genero=55的第一页上显示的所有10个事件返回一个条目。然后,我就可以毫无困难地将刮取的数据写入json文件。在

如果您有任何问题,或者xpath代码没有返回所需的数据,请告诉我。在

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from teste.items import IngressoRapidoItem

class IngressoRapidoSpider(BaseSpider):
    name = "IR"
    allowed_domains = ["ingressorapido.com.br"]
    start_urls = (
        'http://www.ingressorapido.com.br/eventos.aspx?genero=55',
         )

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        events = hxs.select('//table[@id="ContentPlaceHolder1_dlEventos"]//table//td[2]')
        items = []
        for e in events:
            item = IngressoRapidoItem()
            item['banda'] = e.select('normalize-space(.//a//text())').extract()
            item['local'] = e.select('normalize-space(.//span//text())').extract()
            items.append(item)
        return items

相关问题 更多 >