假设你在网上搜索某个项目所需的原始数据,但坏消息是数据存在于网页中,并且没有可用于获取原始数据的API。

所以现在你必须浪费30分钟写脚本来获取数据(最后花费 2小时)。

这不难但是很浪费时间。

Pandas库有一种内置的方法,可以从名为read_html()的html页面中提取表格数据:

https://pandas.pydata.org/importpandasaspdtables = pd.read_html("https://apps.sandiego.gov/sdfiredispatch/")print(tables[0])

就这么简单! Pandas可以在页面上找到所有重要的html表,并将它们作为一个新的DataFrame对象返回。

https://pandas.pydata.org/pandas-docs/stable/dsintro.html#dataframe

输入表格0行有列标题,并要求它将基于文本的日期转换为时间对象:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,
群里还有不错的视频学习教程和PDF电子书!
'''
importpandasaspdcalls_df, = pd.read_html("http://apps.sandiego.gov/sdfiredispatch/", header=0, parse_dates=["Call Date"])print(calls_df)

得到:

CallDateCallTypeStreetCrossStreets    Unit2017-06-0217:27:58Medical         HIGHLAND AV                 WIGHTMAN ST/UNIVERSITY AV     E172017-06-0217:27:58Medical         HIGHLAND AV                 WIGHTMAN ST/UNIVERSITY AV     M342017-06-0217:23:51Medical          EMERSON ST                    LOCUST ST/EVERGREEN ST     E222017-06-0217:23:51Medical          EMERSON ST                    LOCUST ST/EVERGREEN ST     M472017-06-0217:23:15Medical         MARAUDER WY                     BARONLN/FROBISHER ST     E382017-06-0217:23:15Medical         MARAUDER WY                     BARONLN/FROBISHER ST     M41

是一行代码,数据不能作为json记录可用。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,
群里还有不错的视频学习教程和PDF电子书!
'''
importpandasaspdcalls_df, = pd.read_html("http://apps.sandiego.gov/sdfiredispatch/", header=0, parse_dates=["Call Date"])print(calls_df.to_json(orient="records", date_format="iso"))

运行下面的代码你将得到一个漂亮的json输出(即使有适当的ISO 8601日期格式):

[{"Call Date":"2017-06-02T17:34:00.000Z","Call Type":"Medical","Street":"ROSECRANS ST","Cross Streets":"HANCOCK ST/ALLEY","Unit":"M21"},{"Call Date":"2017-06-02T17:34:00.000Z","Call Type":"Medical","Street":"ROSECRANS ST","Cross Streets":"HANCOCK ST/ALLEY","Unit":"T20"},{"Call Date":"2017-06-02T17:30:34.000Z","Call Type":"Medical","Street":"SPORTS ARENA BL","Cross Streets":"CAM DEL RIO WEST/EAST DR","Unit":"E20"}// etc...]

你甚至可以将数据保存到CSV或XLS文件中:

importpandasaspdcalls_df, = pd.read_html("http://apps.sandiego.gov/sdfiredispatch/", header=0, parse_dates=["Call Date"])calls_df.to_csv("calls.csv", index=False)

运行并双击calls.csv在电子表格中打开:

当然,Pandas还可以更简单地对数据进行过滤,分类或处理:

>>> calls_df.describe()CallDateCall Type      Street           Cross Streets Unitcount6969696469unique292292760top2017-06-0216:59:50Medical  CHANNEL WY  LA SALLE ST/WESTERN ST   E1freq566552first2017-06-0216:36:46NaNNaNNaNNaNlast2017-06-0217:41:30NaNNaNNaNNaN>>> calls_df.groupby("Call Type").count()CallDateStreet  Cross Streets  UnitCall TypeMedical66666166Traffic Accident (L1)3333>>> calls_df["Unit"].unique()array(['E46','MR33','T40','E201','M6','E34','M34','E29','M30','M43','M21','T20','E20','M20','E26','M32','SQ55','E1','M26','BLS4','E17','E22','M47','E38','M41','E5','M19','E28','M1','E42','M42','E23','MR9','PD','LCCNOT','M52','E45','M12','E40','MR40','M45','T1','M23','E14','M2','E39','M25','E8','M17','E4','M22','M37','E7','M31','E9','M39','SQ56','E10','M44','M11'], dtype=object)

Python抓取网页数据的终极办法相关推荐

  1. python登录网页后抓取数据_Python抓取网页数据的终极办法

    Pandas库有一种内置的方法,可以从名为read_html()的html页面中提取表格数据: https://pandas.pydata.org/import pandas as pdtables ...

  2. python 抓取网页数据

    python 抓取网页数据 此文解决如何从不同网页爬取数据的问题及注意事项,重点说明requests库的应用. 在开始之前,要郑重说明一下,不是每一个网页都可以爬取数据哦.有的网页涉及个人隐私或其他敏 ...

  3. 怎么用python抓取网页数据

    一个人能力太小,聚沙成塔,抱团取火,分享知识,帮助学习, 有愿意或者有问题一起钻研,新人也好,老手也好,希望在这个寒冬下,尽力生活, 欢迎 一起 qq群,306671879.学习前端 抓取网页需要导入 ...

  4. vs2015编写python爬虫_使用Python抓取网页数据(一)

    iOS python 爬虫 LoL 学习iOS开发有一段时间了,最近想做一个自己的App玩玩,自己比较喜欢玩LOL,所以想试着做一个LOL资料库的App,那么问题来了,这么多英雄,物品等数据怎么获取呢 ...

  5. 爬虫四步曲大神一步一步来教你,使用python抓取网页数据并储存

    爬虫是Python的一个重要的应用,使用Python爬虫我们可以轻松的从互联网中抓取我们想要的数据,本文将基于爬取B站视频热搜榜单数据并存储为例,详细介绍Python爬虫的基本流程.如果你还在入门爬虫 ...

  6. python抓取网页数据并截图_手把手教你使用python抓取并存储网页数据!

    作者:刘早起 来源:早起Python 爬虫是Python的一个重要的应用,使用Python爬虫我们可以轻松的从互联网中抓取我们想要的数据,本文将基于爬取B站视频热搜榜单数据并存储为例,详细介绍Pyth ...

  7. python抓取网页数据并截图_网络爬虫-使用Python抓取网页数据

    搬自大神boyXiong的干货! 闲来无事,看看了Python,发现这东西挺爽的,废话少说,就是干 准备搭建环境 因为是MAC电脑,所以自动安装了Python 2.7的版本 添加一个 库 Beauti ...

  8. python抓取网页数据并截图_python实现自动网页截图并裁剪图片

    本文实例为大家分享了python自动网页截图并裁剪图片的具体代码,供大家参考,具体内容如下 代码: # coding=utf-8 import time from selenium import we ...

  9. python抓取网页数据没有文件输出什么原因_Python抓取网页内容并输出PDF文件

    环境:pytho3.5.1 import requests import os import time import random import re import pdfkit from bs4 i ...

最新文章

  1. C++本质:类的赋值运算符=的重载,以及深拷贝和浅拷贝
  2. jquery初始化的三种方式
  3. Python使用MySQL数据库(新)
  4. python导入py文件-关于python:如何从另一个目录导入.py文件?
  5. 利用牛顿法接非线性方程组的Matlab程序实例
  6. 下载的VS2017工程编译出错的问题
  7. FLV文件格式(Z)(转载)
  8. python并发编程5-线程
  9. 及部署 项目案例_盘点丨2019十大边缘计算项目
  10. python截图直接在内存里调用_Python-按块上传FTP中的内存文件(由API调用生...
  11. 个人电脑完整重装WINDOWN XP 详解--博主推荐
  12. Excel数组与数组公式
  13. linux连接一加手机,How To Build CyanogenMod Android (oneplus/bacon) On Linux
  14. 产品经理修炼之道读后感
  15. java移除字符串中的表情符
  16. 利用Gson对json进行flatten(扁平化)处理
  17. Linux中查看jdk版本
  18. 我国地理信息产业现状与问题,如何利用“黑蚁数据工坊”提高地理信息服务水平。
  19. 深度学习-第T6周——好莱坞明星识别
  20. 欧几里得 推 扩展欧几里得

热门文章

  1. 在Linux 5/6上使用UDEV SCSI规则配置ASM DISK
  2. Nexus学习笔记 -- 安装到运行
  3. Linux下克隆的修改IP
  4. 论java之反射机制,访问类中私有变量,调用私有方法
  5. ORA-20204 错误
  6. c#排序算法(待续)
  7. erwin模型怎么保存_一行命令启动,十分钟内完成部署,Paddle Serving开放模型即服务功能...
  8. python的基本结构_python基础--结构篇
  9. SAP如何批量设置采购信息记录删除标记
  10. 自建SE16N功能,修改数据库表数据