數據爬蟲相關代碼例子已上傳****
1.NumPy (Numeric Python) :用Python實現的科學計算庫
- 強大的N維數組對象array
- 成熟的科學函數庫
- 實用的線性代數、隨機數生成函數等
- NumPy的操作對象是多維數組ndarray ndarray.shape數組的維度
- 創建數組: np.array(<list>) , np.arrange()
- 改變數組形狀reshape()
2.JSON格式
JSON(JavaScript Object Notation)是一種輕量級數據交換格式,可以對複雜數據進行表達和存儲 ,易於閱讀和理解
規則:
- 數據保存在鍵值對中
- 鍵值對之間由逗號分隔
- 花括號用於保存鍵值對數據組成的對象
- 方括號用於保存鍵值對數據組成的數組
採用對象、數組方式組織起來的鍵值對可以表示任何結構的數據,JSON格式是互聯網上主要使用的複雜數據格式之一
[
{
"aqi":47,
"area":"北京" ,
"position_name":"萬壽西宮",
"time_point": "2017-07-29"
},
{
"aqi":63,
"area":"北京”,
"position_name" :"定陵”,
"time_ point":"2017-07-29"
}
]
3.JSON庫
- JSON庫是處理JSON格式的Python標準庫
- 兩個過程:
編碼(encoding) ,將Python數據類型轉換成JSON格式的過程
解碼(decoding) ,從JSON格式中解析數據對應到Python數據類型的過程
4.CSV格式
CSV(Comma- Separated Values)是一種通用的、相對簡單的文件格式,在商業和科學領域上廣泛使用
規則:
- 以行爲單位
- 每行表示一條記錄
- 以英文逗號分割每列數據(如果數據爲空 ,逗號也要保留)
- 列名通常放置在文件第一 行
aqi,area,pm2_5,pm2_ 5_ 24h,position_name,primary_pollutant,quality,station_code,time_point
47,北京,32,33,萬壽西宮,優,1001A,2017-07-29T14:00:00Z
63,北京,37,20,定陵,顆粒物(PM10),良,1002A,2017-07-29T14:00:00Z
- import CSV
- csv.writerow(list) #將列表中的元素寫入文件的一行中
5.os模塊:提供了與系統、目錄操作相關的功能,不受平臺的限制
6.網絡爬蟲:自動抓取互聯網信息的程序 ;利用互聯網數據進行分析、 開發產品
步驟:
- 通過網絡鏈接獲取網頁內容
- 對獲得的網頁內容進行處理
url是統一資源定位符,對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。
7.requests模塊
- requests模塊是一一個簡潔且簡單的處理HTTP請求的工具
- 支持非常豐富的鏈接訪問功能,包括URL獲取、 HTTP會話、Cookie記錄等
requests網頁請求
requests對象屬性
8.網頁解析:結構化解析 ; DOM (Document Object Model) ,樹形結構
9.BeautifulSoup解析網頁
BeautifulSoup:用於解析HTML或XML;pip install beautifulsoup4;import bs4
步驟:
- 創建BeautifulSoup對象
- 查詢節點:find ,找到第一一個滿足條件的節點;find_ all, 找到所有滿足條件的節點
創建對象
- 創建BeautifulSoup對象
bs= BeautifulSoup(
url,
html_ parser, #指定解析器
enoding #指定編碼格式(確保和網頁編碼格式一致)
)
查找節點
- <a href='a.html' class='a_ link'>next page</a>
- 可按節點類型、屬性或內容訪問
- 按類型查找節點bs.find_ all('a')
- 按屬性查找節點
bs.find all(“a', href='a.html')
bs.find all('a', href=* a.html', string‘next page')
bs.find_ all("a', class_ =‘a_ link') #注意:是class_
#或者bs.find all('a', {'class':'a_ link'})