国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Python抓取網(wǎng)頁數(shù)據(jù)的終極辦法 !


源 / Python學習交流    

假設你在網(wǎng)上搜索某個項目所需的原始數(shù)據(jù),但壞消息是數(shù)據(jù)存在于網(wǎng)頁中,并且沒有可用于獲取原始數(shù)據(jù)的API。

所以現(xiàn)在你必須浪費30分鐘寫腳本來獲取數(shù)據(jù)(最后花費 2小時)。

這不難但是很浪費時間。

Pandas庫有一種內(nèi)置的方法,可以從名為read_html()的html頁面中提取表格數(shù)據(jù):

https://pandas.pydata.org/

import pandas as pd

tables = 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行有列標題,并要求它將基于文本的日期轉(zhuǎn)換為時間對象:


import pandas as pd

calls_df, = pd.read_html('http://apps.sandiego.gov/sdfiredispatch/', header=0, parse_dates=['Call Date'])

print(calls_df)

得到:

Call Date        Call Type              Street                             Cross Streets    Unit
  2017-06-02 17:27:58          Medical         HIGHLAND AV                 WIGHTMAN ST/UNIVERSITY AV     E17
  2017-06-02 17:27:58          Medical         HIGHLAND AV                 WIGHTMAN ST/UNIVERSITY AV     M34
  2017-06-02 17:23:51          Medical          EMERSON ST                    LOCUST ST/EVERGREEN ST     E22
  2017-06-02 17:23:51          Medical          EMERSON ST                    LOCUST ST/EVERGREEN ST     M47
  2017-06-02 17:23:15          Medical         MARAUDER WY                     BARON LN/FROBISHER ST     E38
  2017-06-02 17:23:15          Medical         MARAUDER WY                     BARON LN/FROBISHER ST     M41

是一行代碼,數(shù)據(jù)不能作為json記錄可用。

import pandas as pd

calls_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輸出(即使有適當?shù)腎SO 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...
]

你甚至可以將數(shù)據(jù)保存到CSV或XLS文件中:

import pandas as pd

calls_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還可以更簡單地對數(shù)據(jù)進行過濾,分類或處理:

>>> calls_df.describe()

              Call Date Call Type      Street           Cross Streets Unit
count                    69        69          69                      64   69
unique                   29         2          29                      27   60
top     2017-06-02 16:59:50   Medical  CHANNEL WY  LA SALLE ST/WESTERN ST   E1
freq                      5        66           5                       5    2
first   2017-06-02 16:36:46       NaN         NaN                     NaN  NaN
last    2017-06-02 17:41:30       NaN         NaN                     NaN  NaN

>>> calls_df.groupby('Call Type').count()

                      Call Date  Street  Cross Streets  Unit
Call Type
Medical                       66      66             61    66
Traffic Accident (L1)          3       3              3     3

>>> 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)

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Pandas詳解十八之DataFrame對象的
機器學習開放課程(一):使用Pandas探索數(shù)據(jù)分析
pandas小記:pandas索引和選擇
用Python的pandas框架操作Excel文件中的數(shù)據(jù)教程
玩轉(zhuǎn)Python金融量化利器之Pandas
最完整的時間序列分析和預測(含實例及代碼)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服