我是一个绝对的新手在scrapy和python,这是我第一次问一个StackOverflow问题,所以请耐心等待我在这里,
我试图从一个网站的表中提取数据,它包含在一个<span>
标签中。当我使用scrapy shell时,我成功地获得了正确的输出(COVID-19形势报告摘要表的值),但我无法将输出复制到json/csv文件中。我尝试了常规的start_urls
(第8行),但面临着输出为空的问题。
这是我当前的代码,它也给了我一个空白的json输出/文件,没有任何错误
import scrapy
class Covid19spider(scrapy.Spider):
name = "covid19summary" # name of spider
def parse(self,response):
self.start_urls = 'https://www.moh.gov.sg/covid-19/statistics' #url of the website to crawl
all_data = response.xpath("//td")
for data in all_data:
indiv_data = response.xpath("//td/span[1]/text()").extract()
# print(indiv_data)
yield {
'cases': response.xpath("//td/span[1]/text()").extract()
}
会感激一些帮助在这方面!提前感谢!
1条答案
按热度按时间uoifb46i1#
使用报废:
这个很好用试试这个
请注意,这个页面没有给予第一个表的“日期”标题,而只给出了那些元素的内部文本,这些文本在td标签中有一个span标签。所以我建议你阅读CSS选择器的概念。
日期标题源代码:
其他标题:
我的代码给予了td标记内的span标记的文本部分,