为什么我的代码返回空白? (用Scrapy抓取)

时间:2019-06-11 22:40:04

标签: python scrapy web-crawler screen-scraping

我的目标是按星期几的顺序抓取漫画并将其保存到Excel数据表中。我的来源是https://comic.naver.com/webtoon/weekday.nhn

我已经成功地通过终端直接抓取数据,并且想为整个过程编写适当的脚本,但是并没有太大的成功。

使用response.xpath("//div[@class='list_area daily_all']/div[1]/div/h4/span/text()").extract()通过终端直接刮取数据将正确产生数据。工作日从div [1〜7]开始排序,此代码返回“星期一”。

以下代码返回星期一漫画的列表。 response.xpath("//div[@class='list_area daily_all']/div[1]/div//ul/li/a[@class='title']/text()").extract()

但是,以下代码无法返回预期的结果。

def parse(self, response):
    for webtoon in response.xpath("//div[@class='list_area daily_all']/div/div"):
        yield {
            'Day': webtoon.xpath('/h4/span/text()').extract(),
            'Title': webtoon.xpath("/ul/li/a[@class='title']/text()").extract(),
        }

按星期几的顺序,预期结果将是以下代码的7行 {'Day': [day], 'Title': [title1, title2, title3]}

但是,我的代码正在返回 {'Day': [], 'Title': []}

我希望这一切都有道理。

1 个答案:

答案 0 :(得分:1)

您需要使用来启动“ Day”和“ Title”正则表达式。 (点)。

执行此操作时,不要使用response.xpath还是无关紧要的,您仍在尝试在XML的根目录获取h4元素,而不是h4标记在list_area daily_all格之后

webtoon.xpath('/h4/span/text()').extract()

正确的方法是在.之前添加/h4,该点引用以前的xpath选择器的当前位置。

webtoon.xpath('./h4/span/text()').extract()