【发布时间】:2022-01-25 18:55:08
【问题描述】:
我有一个scrapy+splash 文件来抓取数据。现在我想通过脚本运行我的scrapy文件,所以我使用CrawlerProcess。我的文件是这样的:
import scrapy
from scrapy_splash import SplashRequest
from scrapy.crawler import CrawlerProcess
class ProvinceSpider(scrapy.Spider):
name = 'province'
def start_requests(self):
url = "https://e.vnexpress.net/covid-19/vaccine"
yield SplashRequest(url=url,callback=self.parse)
def parse(self, response):
provinces = response.xpath("//div[@id='total_vaccine_province']/ul[@data-weight]")
for province in provinces:
yield{
'province_name':province.xpath(".//li[1]/text()").get(),
'province_population':province.xpath(".//li[2]/text()").get(),
'province_expected_distribution':province.xpath(".//li[3]/text()").get(),
'province_actual_distribution':province.xpath(".//li[4]/text()").get(),
'province_distribution_percentage':province.xpath(".//li[5]/div/div/span/text()").get(),
}
process = CrawlerProcess(settings={
"FEEDS": {
"province.json": {"format": "json"},
},
})
process.crawl(ProvinceSpider)
process.start() # the script will block here until the crawling is finished
但是当我跑步时
python3 province.py
它没有连接到启动服务器,因此无法抓取数据。知道我做错了哪一部分吗?提前谢谢
【问题讨论】:
标签: python-2.7 scrapy splash-screen