如何从网页源中的<script>标签获取数据到.csv文件?

时间:2017-11-28 21:38:06

标签: python html web-scraping

示例网页: https://subwaystats.com/status- 1-train-on-2017-11-27

&#xA;&#xA;

在页面源中有一个名为“data”的变量,它有两个数据列表(标签和数据)将成为.csv中的“列”。

&#xA;&#xA;
 &lt; script&gt;&#xA; ...&#xA; var data = {&#xA;标签:['12am','00:05','00:10','00:15','00:20','00:25',...],& #xA; ...,&#xA;数据:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.. 。],&#xA; ....}&#xA;&lt; / script&gt;&#xA;  
&#xA;&#xA;

我怎样才能获得这两个列入.csv?任何帮助都表示赞赏,因为我对网络抓取很新。

&#xA;

1 个答案:

答案 0 :(得分:0)

如果你对硬编码的东西不感到不舒服,你可以用更少的代码行来获得结果。试一试,看看它的作用:

import requests
from bs4 import BeautifulSoup

res = requests.get('https://subwaystats.com/status-1-train-on-2017-11-27', headers={'User-Agent': 'Mozilla/5.0'})
soup = BeautifulSoup(res.text, "lxml")
items = soup.select('script')[10]
labels = items.text.split("labels: ")[1].split("datasets:")[0].split("[")[1].split("],")[0]
data = items.text.split("data: ")[1].split("spanGaps:")[0].split("[")[1].split("],")[0]
print(labels,data)