为什么这个选择器在chrome中工作但在scrapy中不起作用?

时间:2017-04-18 06:18:05

标签: python web-scraping scrapy

我正在试图刮取股票名称,相关新闻和新闻时间,但scrapy不会返回任何输出

class StationDetailSpider(CrawlSpider):
    name = 'tone'
    start_urls = ["http://www.moneycontrol.com/india/stockpricequote/auto-lcvs-hcvs/ashokleyland/AL"]

    def parse_news(self, response):
        for brickset in response.css:
            #TIME_SELECTOR = '//div.gD_10 ::text'
            NAME_SELECTOR = './/div[@class='b_42h1[@class='b_42'] PT5 PR']'
            #NEWS_SELECTOR = '//a.bl_13 ::text'
            yield {
                #'time': brickset.css(TIME_SELECTOR).extract_first(),
                #'news': brickset.css(NEWS_SELECTOR).extract_first(),
                'name': brickset.xpath(NAME_SELECTOR).extract_first(),
                 }

任何形式的见解将不胜感激。我尝试了其他格式,但徒劳无功。

2 个答案:

答案 0 :(得分:1)

您的xpath似乎不正确,我想知道您在Chrome中做了什么让它找到了一些东西。

试试这个xpath:

//div[@class="b_42 PT5 PR"]/h1/text()

假设你想要刮

  

Ashok Leyland

答案 1 :(得分:0)

在这种特殊情况下 - 只有一个h1代码,因此您可以使用//h1/text()的简单xpath