python 簡易爬蟲筆記

目標 :

存取指定網頁的 element 的 value 為 json , 並將其匯出成 json 檔案

Step 1 安裝套件:

使用 pip3 安裝下列套件

requests :

python 用來處理一般 service 請求的套件,相關資訊可查看 requests 快速上手

安裝 :

$ pip3 install requests

beautifulsoup4 :

Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup 会帮你节省数小时甚至数天的工作时间.相關資訊可查看 python:BeautifulSoup 模块使用指南

安裝 :

$ pip install beautifulsoup4

json :

python 用來處理 json 格式的套件,python中自带了处理python的模块,使用时候直接import json即可。

Step 2 開始 codding :

1. 引入 python 要使用的模組:

import requests
import json
from bs4 import BeautifulSoup

2. 使用 beautifulsoup4 模塊解析 來自 requests的url 的文檔,並使用 html.parser 解析器傳出結果:

res = requests.get('http://bonze.tw')
soup = BeautifulSoup(res.text, "html.parser")

3. 建立陣列物件以來存取要抓取的資料:

obj = {}
obj['article'] = []

4. 使用迴圈個別抓取指定 element 的 value , 且存取置張所建立的陣列物件:

for drink in soup.select('.article-field.title'):
addItem = {'title': drink.get_text(),'href' : drink.find('a').get('href')}
obj['article'].append(addItem)

5.最後將存取後的物件匯入到指定的json檔即可:

with open('bonze.json', 'w') as f:
json.dump(obj,f,ensure_ascii=False,sort_keys = True ,indent = 4)

執行成果:

完整的coding:

# 引入 python 要使用的模組:

import requests
import json
from bs4 import BeautifulSoup

# 使用 beautifulsoup4 模塊解析 來自 requests的url 的文檔,並使用 html.parser 解析器傳出結果:

res = requests.get('http://bonze.tw')
soup = BeautifulSoup(res.text, "html.parser")

# 建立陣列物件以來存取要抓取的資料:

obj = {}
obj['article'] = []

# 使用迴圈個別抓取指定 element 的 value , 且存取置張所建立的陣列物件:

for drink in soup.select('.article-field.title'):
addItem = {'title': drink.get_text(),'href' : drink.find('a').get('href')}
obj['article'].append(addItem)

# 將存取後的物件匯入到指定的json檔

with open('bonze.json', 'w') as f:
json.dump(obj,f,ensure_ascii=False,sort_keys = True ,indent = 4)