給爬蟲新手的 Python Excel 寫入實作範例 (1)
爬蟲前置作業
網路爬蟲(Web Crawler)簡單來說就是將網頁上的所有資訊爬取下來,省去人工抓取的時間成本,這篇文章將會以實際範例來將網頁上面所有的文章標題名稱爬下來並依序放進 Excel 表格中
- 使用語言:Python
- 使用工具:Anaconda 的 Jupyter Notebook
- 使用的 Python Package:requests, BeautifulSoup
- 爬取的網址:https://www.gofreight.co/blog
先來看一下網站的概況,這個寫物流業相關文章的部落格排版相當整齊,照版面配置情況感覺是用 Wordpress 所製作的,下面先看一下網頁的原始碼
資料檢索
開啟網頁原始碼:點擊 F12 或是在網頁空白處點擊右鍵並選取檢查 (Inspect)
經過檢查網頁規律後,找尋想要爬取的物件後就可以開始我們的爬蟲了!
範例中我們要找取的是文章的標題,進入Inspect模式後我們可以點選上方的箭頭符號,再點選想要查看的區塊就會跑出對應的目標位址了,目標是被存在 <a class=”title” ……> 的後面
開始程式部分 Let’s start coding!
# import 需要的 packages
import requests
from bs4 import BeautifulSoup
用 requests 呼叫要爬取的網址,並用 BeautifulSoup 去抓取想要的 target
這邊可以用 print(soup) 來看一下爬取下來的結果喔!
URL = ‘https://www.gofreight.co/blog'
web = requests.get(URL)
target = BeautifulSoup(web.text, “html.parser”)
接下來我們要把 title 從網頁碼中抓取出來,用 BeautifulSoup 的 find_all function,找尋剛剛看到的 ‘a’ 然後 class 要是 ‘title’ 並存入 Title變數,最後爬取目標(範例為抓取前 20 個),並存入數列 A 中
Title = soup.find_all(‘a’, {‘class’: ‘title’})
A = []
i = list(range(0,20))
for index in i:
result = Title[index].string.strip()
A.append(result)
.string 是要指定 <>外的 index, .strip() 是把多餘的空格部分都去除
最後,用 print(A) 就可以看到結果了!
下一篇會是把抓取的資料依順序存入 Excel