Python基于pandas爬取網(wǎng)頁表格數(shù)據(jù)
以網(wǎng)頁表格為例:https://www.kuaidaili.com/free/
該網(wǎng)站數(shù)據(jù)存在table標簽,直接用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]:表示第一個table,多個table需要指定,如果不指定默認第一個 # 如果沒有【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:標題行;
- skiprows:跳過的行;
- attrs:屬性,比如 attrs = {'id': 'table'};
- parse_dates:解析日期
注意:返回的結(jié)果是**DataFrame**組成的**list**。
若要dataframe,直接取list【0】
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python中的?Numpy?數(shù)組形狀改變及索引切片
這篇文章主要介紹了Python中的?Numpy?數(shù)組形狀改變及索引切片,Numpy提供了一個reshape()方法,它可以改變數(shù)組的形狀,返回一個新的數(shù)組,更多相關內(nèi)容需要的小伙伴可以參考下面文章2022-05-05
Python讀取含url圖片鏈接的txt文檔方法小結(jié)
這篇文章主要為大家詳細介紹了三種Python讀取含url圖片鏈接的txt文檔方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-04-04
Python爬蟲獲取全網(wǎng)招聘數(shù)據(jù)實現(xiàn)可視化分析示例詳解
這篇文章主要介紹了Python爬蟲獲取全網(wǎng)招聘數(shù)據(jù)實現(xiàn)可視化分析示例詳解,實現(xiàn)采集一下最新的qcwu招聘數(shù)據(jù),本文列舉了部分代碼以及實現(xiàn)思路,需要的朋友可以參考下2023-07-07
Python實現(xiàn)自動化處理Word文檔的方法詳解
本文主要介紹了如何使用Python實現(xiàn)Word文檔的自動化處理,包括批量生成Word文檔、在Word文檔中批量進行查找和替換、將Word文檔批量轉(zhuǎn)換成PDF等,希望對你有所幫助2022-08-08
keras自定義回調(diào)函數(shù)查看訓練的loss和accuracy方式
這篇文章主要介紹了keras自定義回調(diào)函數(shù)查看訓練的loss和accuracy方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05

