使用python刮擦javascript

时间:2014-02-25 02:52:46

标签: javascript python beautifulsoup

我正在尝试从以下网站抓取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}

我需要刮掉字典中的变量。有关如何做到这一点的任何建议吗?

感谢。

2 个答案:

答案 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

相关问题