使用read_html爬取网页表哥,Python笔记:用read_html()爬取table形式表格的网络数据...
不少對(duì)爬蟲有所了解但卻不會(huì)的人應(yīng)該會(huì)知道,爬蟲功能非常強(qiáng)大,但卻不是太好學(xué)!但是,pandas中的read_html()用于抓取Table表格型數(shù)據(jù)時(shí),簡直是個(gè)神器。不信?我小露一手給你們看。
針對(duì)網(wǎng)頁結(jié)構(gòu)類似的表格類型數(shù)據(jù),pd.read_html()就派上了大用場了,它可以將網(wǎng)頁上的表格都抓取下來,并以DataFrame的形式裝在一個(gè)列表中返回。具體是這么個(gè)流程:
網(wǎng)頁URL→發(fā)送請(qǐng)求→網(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
指定列標(biāo)題所在的行
attrs: dict or None, optional
傳遞一個(gè)字典,用其中的屬性篩選出特定的表格
parse_dates:bool
解析日期
接下來以爬取新浪財(cái)經(jīng)的基金重倉股為例演示一下,URL為:http://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jjzc/index.phtml?p=1
這部分有6頁,點(diǎn)擊不同的頁數(shù)可以發(fā)現(xiàn),請(qǐng)求URL主要是 p 參數(shù)在變動(dòng),p=n代表了第 n 頁,所以一個(gè) for 循環(huán)就可以遍歷所有網(wǎng)址啦。URL的變動(dòng)規(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")
運(yùn)行結(jié)果:
爬取到本地:
爬取到CSV:
爬取到Excel:
結(jié)語:So easy,媽媽再也不用擔(dān)心我不會(huì)爬蟲了!
來源:oschina
鏈接:https://my.oschina.net/u/3750423/blog/4279031
總結(jié)
以上是生活随笔為你收集整理的使用read_html爬取网页表哥,Python笔记:用read_html()爬取table形式表格的网络数据...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue router html后缀,vu
- 下一篇: 计算机面试数据库基本知识,面试基础知识集