使用read_html爬取网页表哥,Python笔记:用read_html()爬取table形式表格的网络数据...
不少對爬蟲有所了解但卻不會的人應該會知道,爬蟲功能非常強大,但卻不是太好學!但是,pandas中的read_html()用于抓取Table表格型數(shù)據(jù)時,簡直是個神器。不信?我小露一手給你們看。
針對網(wǎng)頁結構類似的表格類型數(shù)據(jù),pd.read_html()就派上了大用場了,它可以將網(wǎng)頁上的表格都抓取下來,并以DataFrame的形式裝在一個列表中返回。具體是這么個流程:
網(wǎng)頁URL→發(fā)送請求→網(wǎng)站→返回→DataFrame
先介紹一下 read_html()的一些主要的參數(shù)
read_html
io:str or file-like
接收網(wǎng)址、文件、字符串。網(wǎng)址不接受?https,嘗試去掉?s后爬去
header:int or list-like or None
指定列標題所在的行
attrs: dict or None, optional
傳遞一個字典,用其中的屬性篩選出特定的表格
parse_dates:bool
解析日期
接下來以爬取新浪財經(jīng)的基金重倉股為例演示一下,URL為:http://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jjzc/index.phtml?p=1
這部分有6頁,點擊不同的頁數(shù)可以發(fā)現(xiàn),請求URL主要是 p 參數(shù)在變動,p=n代表了第 n 頁,所以一個 for 循環(huán)就可以遍歷所有網(wǎng)址啦。URL的變動規(guī)律了解之后,就可以愉快的爬數(shù)據(jù)了,代碼如下:
import pandas as pd
df = pd.DataFrame()
for i in range(6):
url = "http://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jjzc/index.phtml?p={page}".format(page=i+1)
df = pd.concat([df,pd.read_html(url)[0]])
print("第{page}頁完成~".format(page=i+1))
df.to_csv("./tengyulong.csv", encoding = "utf-8", index=0)
df.to_csv(r"C:\Users\QDM\Desktop\tengyulong.csv", encoding="utf-8", index=0)
df.to_excel(excel_writer = r"C:\Users\QDM\Desktop\tengyulong.xlsx",sheet_name = "tengyulong")
運行結果:
爬取到本地:
爬取到CSV:
爬取到Excel:
結語:So easy,媽媽再也不用擔心我不會爬蟲了!
來源:oschina
鏈接:https://my.oschina.net/u/3750423/blog/4279031
總結
以上是生活随笔為你收集整理的使用read_html爬取网页表哥,Python笔记:用read_html()爬取table形式表格的网络数据...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue router html后缀,vu
- 下一篇: 目前计算机病毒只有网络型病毒吗,在web