文档章节

【优达学城测评】P3: Wrangle OpenStreetMap Data--Using Beautiful Soup(4)

Betty__
 Betty__
发布于 2016/10/11 08:21
字数 180
阅读 27
收藏 0

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Please note that the function 'make_request' is provided for your reference only.
# You will not be able to to actually use it from within the Udacity web UI.
# Your task is to process the HTML using BeautifulSoup, extract the hidden
# form field values for "__EVENTVALIDATION" and "__VIEWSTATE" and set the appropriate
# values in the data dictionary.
# All your changes should be in the 'extract_data' function
from bs4 import BeautifulSoup
import requests
import json

html_page = "page_source.html"


def extract_data(page):
    data = {"eventvalidation": "",
            "viewstate": ""}
    with open(page, "r") as html:
        soup = BeautifulSoup(html, "lxml")
        ev = soup.find(id="__EVENTVALIDATION")
        data["eventvalidation"] = ev["value"]

        vs = soup.find(id="__VIEWSTATE")
        data["viewstate"] = vs["value"]

    return data


def make_request(data):
    eventvalidation = data["eventvalidation"]
    viewstate = data["viewstate"]

    r = requests.post("http://www.transtats.bts.gov/Data_Elements.aspx?Data=2",
                    data={'AirportList': "BOS",
                          'CarrierList': "VX",
                          'Submit': 'Submit',
                          "__EVENTTARGET": "",
                          "__EVENTARGUMENT": "",
                          "__EVENTVALIDATION": eventvalidation,
                          "__VIEWSTATE": viewstate
                    })

    return r.text


def test():
    data = extract_data(html_page)
    assert data["eventvalidation"] != ""
    assert data["eventvalidation"].startswith("/wEWjAkCoIj1ng0")
    assert data["viewstate"].startswith("/wEPDwUKLTI")

    
test()

© 著作权归作者所有

Betty__
粉丝 7
博文 360
码字总数 46678
作品 0
武汉
私信 提问
分析称开源成微软抗衡谷歌地图秘密武器

北京时间3月28日消息,美国科技网站Computerworld周二撰文指出,虽然谷歌在互联网地图领域遥遥领先于微软,但开源将成为微软抗衡谷歌地图的秘密武器。 以下为文章全文: 谷歌在许多领域的竞争...

威廉亨利
2012/03/28
1K
6
OpenStreetMap 与 Google Maps:小巫遇大巫

如 果要问 Google 除了搜索引擎之外最受欢迎的服务是什么,得到最多票数的答案之一肯定是 Google Maps。据调查,71 % 的在线地图服务使用者都在使用 Google Maps。这个免费地图服务(对个人用...

虫虫
2012/04/10
1K
3
GNOME 地图 3.20 加入更多新特性 可用性得到加强

看起来,最新的GNOME地图3.20会有不错的表现,其中加入了不少新特性。先前GNOME地图从3.16升级到3.18的时候,改进并不是那么明显。而现如今GNOME 3.20已经在准备中了,这次就有更多有趣的东西...

oschina
2016/03/03
2.2K
2
共享免费地图:OpenStreetMap

“www.OpenStreetMap.org”,这个网站看上去不能说是很漂亮,操作起来也不算方便,但它的前景却非常可观,至少,该网站制作者是这样认为的。他们的设想是,构建人人可免费使用、人人可参与制...

红薯
2009/06/08
17.5K
8
苹果 iPhoto 使用 OpenStreetMap 数据

苹果发布了iOS照片管理程序iPhoto,使用了来自OpenStreetMap的公开数据,但并没有提到数据来源。OpenStreetMap基金会官方博客称,iPhoto以前使用的是Google Maps的数据,他们很高兴看到一家世...

红薯
2012/03/09
1K
5

没有更多内容

加载失败,请刷新页面

加载更多

C 语言 二级指针的使用

#include <stdio.h>#include <stdlib.h>typedef struct node Node;struct node {int data;struct node* next;struct node* prev;};Node head;Node* insert(Node......

小张525
26分钟前
2
0
【大数据技术】——Hadoop(1)

什么是大数据 基本概念 《数据处理》 在互联网技术发展到现今阶段,大量日常、工作等事务产生的数据都已经信息化,人类产生的数据量相比以前有了爆炸式的增长,以前的传统的数据处理技术已经...

须臾之余
40分钟前
6
0
比特币从地址逆向计算私钥

区块链 区块链简介 说到比特币,就不得不提区块链。那什么是区块链呢? 区块链本质是一个数据集,只不过数据的组织采用了比较特殊的方式,就是把数据拆分为一块一块的小数据集。 为什么要进行...

trayvon
55分钟前
1
0
TypeScript……真香

写前端或者用 node 写命令行小工具一直采用的 es6 的语法,对于 TypeScript 则是秉持敬而远之的态度,毕竟团队中多推广一门语言所需要花费的精力都是让人望而却步的。所以对于 JavaScript 的...

郁也风
今天
3
0
shell基本案例

1、自定义rm linux系统的rm命令太危险,一不小心就会删除掉系统文件。 写一个shell脚本来替换系统的rm命令,要求当删除一个文件或者目录时,都要做一个备份,然后再删除。下面分两种情况,做...

寰宇01
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部