Lua脚本在chrome中效果很好,但不会在解释器中抓取数据

时间:2019-10-04 17:36:21

标签: python web-scraping lua scrapy-splash

我写的lua脚本可以在chrome中使用闪屏工作,并且可以成功获取页面的html(),但是我在pycharm中运行此脚本,尽管它没有显示任何错误,但它不会抓取任何数据。 这是针对网站https://www.daraz.pk/smartphones/

试图更改按钮的css选择器,但是没有运气。

Lua脚本:

function main(splash, args)
    assert(splash:go(args.url))
    assert(splash:wait(10.0))
    treat=require('treat')
    result = {}
    for i=1,68,1
    do  
        assert(splash:runjs("document.querySelector('.ant-pagination-next .ant-pagination-item-link').click()"))
        assert(splash:wait(10.0))
        result[i]=splash:html()


    end  
    return treat.as_array(result)
end

这是start_request方法:         def start_requests():             url ='https://www.daraz.pk/smartphones/'

        yield SplashRequest(url=url, callback=self.parse, endpoint='execute',
                            args={'wait': 0.5, 'lua_source': self.script, 'timeout': 3600})

最后是解析方法:

    def parse(self, response):
        for page in response.text:
            sel = Selector(text=page)
            for phone in sel.xpath('//div[@class="c2prKC"]'):
                yield {
                    'Name': phone.xpath('.//div[@class="c16H9d"]/a/text()').extract(),
                    'Price': phone.xpath('.//span[@class="c13VH6"]/text()').extract(),
                    'old_price': phone.xpath('.//del[@class="c13VH6"]/text()').extract(),

                }

有关如何执行此操作的任何建议?

0 个答案:

没有答案