Python基于pandas爬取網(wǎng)頁表格數(shù)據(jù)
以網(wǎng)頁表格為例:https://www.kuaidaili.com/free/
該網(wǎng)站數(shù)據(jù)存在table標(biāo)簽,直接用requests,需要結(jié)合bs4解析正則/xpath/lxml等,沒有幾行代碼是搞不定的。
今天介紹的黑科技是pandas自帶爬蟲功能,pd.read_html(),只需傳人url,一行代碼搞定。
原網(wǎng)頁結(jié)構(gòu)如下:
python代碼如下:
import pandas as pd url='http://www.kuaidaili.com/free/' df=pd.read_html(url)[0] # [0]:表示第一個(gè)table,多個(gè)table需要指定,如果不指定默認(rèn)第一個(gè) # 如果沒有【0】,輸入dataframe格式組成的list df
輸出dataframe格式數(shù)據(jù)
再次保存到本地,csv格式,注意中文編碼:utf_8_sig
print(type(df))df.to_csv('free ip.csv',mode='a', encoding='utf_8_sig', header=1, index=0)print('done!')
查看csv文件
先來了解一下read_html函數(shù)的api:
pandas.read_html(io, match='.+', flavor=None, header=None, index_col=None, skiprows=None, attrs=None, parse_dates=False, tupleize_cols=None, thousands=', ', encoding=None, decimal='.', converters=None, na_values=None, keep_default_na=True, displayed_only=True)
常用的參數(shù):
- io:可以是url、html文本、本地文件等;
- flavor:解析器;
- header:標(biāo)題行;
- skiprows:跳過的行;
- attrs:屬性,比如 attrs = {'id': 'table'};
- parse_dates:解析日期
注意:返回的結(jié)果是**DataFrame**組成的**list**。
若要dataframe,直接取list【0】
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
NumPy-ndarray 的數(shù)據(jù)類型用法說明
這篇文章主要介紹了NumPy-ndarray 的數(shù)據(jù)類型用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-05-05詳解Python的Django框架中的Cookie相關(guān)處理
這篇文章主要介紹了詳解Python的Django框架中的Cookie相關(guān)處理,Cookie存儲(chǔ)是每個(gè)開發(fā)框架都會(huì)著重注意的重要功能,需要的朋友可以參考下2015-07-07詳解Python虛擬機(jī)是如何實(shí)現(xiàn)閉包的
Python中的閉包是一個(gè)強(qiáng)大的概念,允許函數(shù)捕獲和訪問其周圍的作用域,即使這些作用域在函數(shù)執(zhí)行完畢后也能被訪問,這篇文章將著重討論P(yáng)ython虛擬機(jī)是如何實(shí)現(xiàn)閉包的,文中有相關(guān)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2023-12-12Python使用PyMuPDF實(shí)現(xiàn)添加PDF水印
在日常工作中,我們經(jīng)常需要對(duì)PDF文件進(jìn)行處理,其中一項(xiàng)常見的需求是向PDF文件添加水印,本文將介紹如何使用Python編程語言和PyMuPDF庫(kù)在PDF文件中添加水印,感興趣的可以了解一下2023-08-08Pycharm無法顯示動(dòng)態(tài)圖片的解決方法
今天小編就為大家分享一篇Pycharm無法顯示動(dòng)態(tài)圖片的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10python 編程之twisted詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了python 編程之twisted詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-01-01python dataclass 快速創(chuàng)建數(shù)據(jù)類的方法
在Python中,dataclass是一種用于快速創(chuàng)建數(shù)據(jù)類的裝飾器和工具,本文實(shí)例代碼中我們定義了一個(gè)Person數(shù)據(jù)類,并使用fields()函數(shù)遍歷其字段,打印出每個(gè)字段的名稱、類型、默認(rèn)值和元數(shù)據(jù),對(duì)python dataclass 數(shù)據(jù)類相關(guān)知識(shí)感興趣的朋友一起看看吧2024-03-03python實(shí)現(xiàn)Oracle查詢分組的方法示例
這篇文章主要介紹了python實(shí)現(xiàn)Oracle查詢分組的方法,結(jié)合實(shí)例形式分析了python使用group by子句及having子句實(shí)現(xiàn)Oracle查詢分組的相關(guān)操作技巧,需要的朋友可以參考下2020-04-04python調(diào)用chrome實(shí)現(xiàn)網(wǎng)頁自動(dòng)操作過程
這篇文章主要介紹了python調(diào)用chrome實(shí)現(xiàn)網(wǎng)頁自動(dòng)操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11