我正在尝试从以下网站抓取R中的运行路线到地理处理:http://runkeeper.com/user/127244964/route/1149604
我正试着用这段代码来做:
from bs4 import BeautifulSoup
import urllib2
import csv
import os
import requests
page1 = urllib2.urlopen("http://runkeeper.com/user/212579518/route/513771")
soup = BeautifulSoup(page1)
print(soup)
当我打印结果时,我发现我需要的数据是在text / javascript上:
var routePoints = [{“latitude”:38.918704,“经度”: - 77.036478,“deltaDistance”:0,“type”:“StartPoint”,“altitude”:40,“deltaPause”:0}
我需要刮掉字典中的变量。有关如何做到这一点的任何建议吗?
感谢。
答案 0 :(得分:1)
这将使用正则表达式搜索汤数据并将其加载到对象中供您使用。
import re
import json
point_re = re.compile('.*routePoints =(.*);')
point_json = point_re.search(str(soup)).group(1)
point_data = json.loads(point_json)
答案 1 :(得分:0)
使用regexp去除方括号外的所有内容(或者,只选择最外面括号的内容),然后在括号上使用json.loads
。