我的目标是按星期几的顺序抓取漫画并将其保存到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': []}
我希望这一切都有道理。
答案 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()