我使用scrapy
抓取和抓取网页。
我有兴趣取消此page。如您所见,有几个图表。但是,当我查看源代码时,即使在<script>
标签中搜索,也找不到这些点的值。
我该如何删除每个图表,以x为小时,以y为奇数?
草率版本:1.5.2
答案 0 :(得分:2)
数据在您的网页上。检入script
标签变量var cote_data_1
,var cote_data_2
等。它们应该在没有JS的情况下可用。
答案 1 :(得分:0)
以下是清除第一个图表数据的代码:
import scrapy
import ast
def find_between(s, start, end):
return (s.split(start))[1].split(end)[0]
class CanalTurfSpider(scrapy.Spider):
name = "CanalTurfSpider"
start_urls = ['https://www.canalturf.com/cotes/2019-04-15/'
'maisons-laffitte/185850_prix-des-ecuries-du-chateau.html']
def parse(self, response):
data = response.xpath('//script').extract()[-1]
chart1_data = find_between(data, "var cote_data_1 = ", ";")
chart1_data = ast.literal_eval(chart1_data)
yield {
"chart1_data": chart1_data
}
输出:
{'chart1_data': [{'elapsed': '12:25', 'value': 9.3}, {'elapsed': '12:35', 'value': 9.7}, {'elapsed': '12:45', 'value': 10}, {'elapsed': '12:55', 'value': 10.1}, {'elapsed': '13:05', 'v
alue': 10.6}, {'elapsed': '13:15', 'value': 10.6}, {'elapsed': '13:25', 'value': 11.2}, {'elapsed': '13:35', 'value': 11.3}, {'elapsed': '13:45', 'value': 13.1}, {'elapsed': '13:55', '
value': 14.7}, {'elapsed': '14:05', 'value': 18.8}, {'elapsed': '14:15', 'value': 18.8}]}
您可以在最后一个脚本块中找到变量。