1. 程式人生 > 實用技巧 >網頁獲取資料

網頁獲取資料

HTML:

是用來描述網頁的一種語言。但是它不是一種程式語言,而是一種標記語言(markup language)。標記語言是一套標記標籤(markup tag), HTML 是使用標記標籤來描述網頁。

html 標記標籤通常被稱為HTML 標籤(HTML tag)。

標籤由尖括號包圍的關鍵詞,比如<html>

標籤通常是成對出現的,比如<b> 和</b>

標籤對中的第一個標籤是開始標籤,第二個標籤是結束標籤,開始和結束標籤也被稱為開放標籤和閉合標籤。

解析HTML 函式

  BeautifulSoup(html)

  find(name,id=id.attrs={})

  find_all(name,attrs={})

  getText()

html: html 格式文件

name: 需要檢索的標籤名

attrs: html標籤內的屬性值,可以用這些屬性進行過濾

import urllib.request

#pip install BeautifulSoup4
from bs4 import BeautifulSoup

response = urllib.request.urlopen('file:///Volumes/CHASESKY/python/03-資料分析與資料探勘篇/1-資料分析資料視覺化實戰-(Python3.5)/章節6網頁資料抓取/6/6.1/html.html
') # 把裡面的內容讀出來 html = response.read() print(html) # 將內容排好序 soup = BeautifulSoup(html) print(soup) #%% print(soup.find('tr')) print(soup.find_all('tr'))

JSON 簡述

JSON 全稱JavaScript 物件表示法(JavaScript Object Notation) , 是儲存和交換文字資訊的語法。具有文字量更小,更快,更易解析的特點。

json 和 html 不一樣,html主要用於展示資料,json主要用於傳遞資料,所以一般作為資料的查詢介面。

JSON 函式:

json.loads(jsonString)

jsonList[index]

jsonObject['propertyName']

jsonString, JSON 的字串格式資料,如果沒有解碼,呼叫decode()即可

index, JSON 序列物件的索引值,從0開始,可以通過len方法獲取總長度

propertyName, JSON物件的屬性名,可以通過這個方法訪問JSON 的屬性值

import json
import urllib.request

response = urllib.request.urlopen('file:///Volumes/CHASESKY/python/03-資料分析與資料探勘篇/1-資料分析資料視覺化實戰-(Python3.5)/章節6網頁資料抓取/6/6.2/json.json')
#%%  讀取字串
jsonString = response.read()

#解碼出來
#%%
jsonObject = json.loads(jsonString.decode())
print(jsonObject)
#
print(jsonObject['employees'])
print(jsonObject['employees'][0])
print(jsonObject['employees'][0]['lastName'])

Google:

Ctrl+ Shift+I

mac: alt+command+I

解析網頁

data = DataFrame(columns=['Feature','Property'])

data = data.append(Series([f,p], index=['Feature',' Property']), ignore_index = True)

columns 資料框的列 index 序列對應的序列,通過指定和資料框一樣的列名,往資料框內追加資料

ignore_index: 是否忽略原來的序號,一般設定為True,則重新設定序號。