从Everytrail下载行程的刮刀,包括GPS数据、故事和照片。

everytrail_export的Python项目详细描述


一个python脚本,它为旅行故事刮掉所有的旅行页面, 照片和GPS数据。为自己的旅行出口。

this blog post 为了这个工具背后的动机。

安装

使用pip

安装
pip install everytrail_export

如果由于权限而失败,请尝试 pip install everytrail_export --user

如果由于未安装PIP而失败,请遵循以下说明: https://pip.pypa.io/en/latest/installing.html

用法

使用pip安装会生成一个名为^{tt3}的可执行文件$ 可从命令行获得。调用不带参数的脚本 给出使用说明:

everytrail_export

如果失败,请确保系统$PATH包含 安装来自python包的可执行脚本的位置。 (例如,如果在osx上安装了--user选项, 包脚本安装到~/Library/Python/2.7/bin

–trailauth选项

从Everytrail下载GPX/KML数据需要登录。 这意味着您需要从Web浏览器传递登录cookie,以便 脚本可以充当登录用户。

首先,在浏览器上登录Everytrail,这将设置一个cookie 向您登录的所有轨道指示。然后找出 TRAILAUTHcookie,它将是一长串字母和数字 看起来像是 bce2a5ef9d3fd800e84f438f7237fe40dec5f1bd94cf67075ad17540ce956eed。 找到这个cookie至少有两种方法:

  1. 按照此Wikihow页面上的说明查看浏览器的 饼干:http://www.wikihow.com/View-Cookies
  2. 在Everytrail页面上,打开浏览器的Web开发人员 控制台(通常在“工具”菜单下)并键入document.cookie。 查找TRAILAUTH值。

然后,可以使用^{tt11}将该值传递给脚本$ 选择。

-trips页面选项

如果使用--trips-page选项提供旅行的url 列表页,然后该列表将为 下载。这样的话,你不必一次一个地通过旅行 剧本。

要查找您的旅行页面,请确保您已登录Everytrail, 然后将鼠标悬停在菜单顶部的“MyEverytrail”上。 页面,直到出现下拉菜单。点击“我的旅行”在 下拉菜单。复制浏览器地址栏中的URL。

总而言之

使用--trailauth--trips-page选项运行脚本 将找到该url中列出的所有trips,然后下载trips 一个接一个:

$ everytrail_export --trailauth d9b61ab30a10... \
    --trips-page http://www.everytrail.com/my_trips.php?user_id=154142
Scraping http://www.everytrail.com/my_trips.php?user_id=154142 for trip URLs...
Found links to 15 trips: 1550019 1673357 1693258 1733157 1741278 1820769 1924844 1924847 2022884 2053816 2108623 2301920 2348794 2671553 2991898
Trip 1/15:
Downloading http://www.everytrail.com/view_trip.php?trip_id=1550019
  El Corte de Madera Creek Trail - California, United States
  Saved trails/1550019-el-corte-de-madera-creek-trail/title.txt
  Saved trails/1550019-el-corte-de-madera-creek-trail/info.html
  Saved trails/1550019-el-corte-de-madera-creek-trail/stats.html
  Saving GPX and KML files...
  Downloading http://www.everytrail.com/downloadGPX.php?trip_id=1550019
  Saved trails/1550019-el-corte-de-madera-creek-trail/1550019.gpx
  Downloading http://www.everytrail.com/downloadKML.php?trip_id=1550019
  Saved trails/1550019-el-corte-de-madera-creek-trail/1550019.kmz
  Downloading photos page: http://www.everytrail.com/trip_pictures.php?trip_id=1550019&code=
  Photo 1/13:
    Downloading photo info page: http://www.everytrail.com/view_picture.php?trip_id=1550019&picture_id=4326030
    Finding full photo: http://www.everytrail.com/picture/vieworiginal?picture_id=4336030
    Downloading full photo: http://images.everytrail.com/pics/original/4336030-IMG_8018.jpg
    Saved "IMG_8018" to trails/1550019-el-corte-de-madera-creek-trail/images/4336030-IMG_8018.jpg
...
  Saved trails/1550019-el-corte-de-madera-creek-trail/photo_info.json
Trip 2/15:
...

如果您的行程太多,以至于它们跨越了多个列表页(您的 trips页面底部有一个“下一步”链接,然后需要运行 每个列表页的脚本。

下载个人行程

另一种调用脚本的方法是只下载特定的 旅行。在这种情况下,可以将它们指定为参数:

$ everytrail_export --trailauth d9b61ab30a10... \
    http://www.everytrail.com/view_trip.php?trip_id=2671553 \
    http://www.everytrail.com/view_trip.php?trip_id=2991898 \
    http://www.everytrail.com/view_trip.php?trip_id=2348794

–跳过照片

如果你有很多照片但只想下载旅行故事 gps数据,--skip-photos选项将使下载变得更多 更快。

–最大重试次数

默认情况下,脚本将重试失败的请求5次。如果 每个轨道都特别不稳定,您可以指定一个更高的值 使用--max-retries选项。

联系人

如果您有任何问题,或者在运行此脚本时遇到问题, 请发邮件到mark@warkmilson.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何通过jamod读取控制器的输入状态?   java Back bean方法在使用两个h的单一表单时未调用:selectonemenus和command button   mockitojava中的单元测试Mock继承方法   java在不传递到构造函数的情况下,将一个类的实例使用到另一个类中的最佳方法是什么   java Spring MVC:如何通过API在Dozer的toplevel字段中允许空值?   java hibernate到MSSQL服务器的连接被拒绝:连接   java动态调用现有变量   在java中扩展多个类的泛型   java使用JNA Ptrace获取linux中外部进程的信息?   eclipse获取Java项目中所有构建错误的最快方法是什么?   java将动态数组拆分为多个数组   java安卓:将json保存到sqlite   java获取最近时间Android   java如何为多对多关联编写HQL查询?   java Docker compose for mysql和spring应用程序拒绝访问   java查找数组(如果它是另一个数组的子集)   java如何在另一个具有相同数据类型参数的泛型类(或接口)中使用泛型类(或接口),而无需强制转换   Apache POI java。lang.NoClassDefFoundError:org/apache/commons/compress/utils/InputStreamStatistics   java使用Jackson将JSON反序列化为异构元素列表   使用MapReduce实现java规范化