iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0

接續上一篇[股價預測篇-爬蟲part2(金融類)],這篇教大家如何設定使用者代理,爬到所需的數據(收盤價)。

反爬蟲機制(設定使用者代理)

1.開啟上篇的url,在頁面按右鍵,進入檢查。
2.點Network > 重新整理頁面,輸入網頁上任一要爬的關鍵字(如「2021」) > 搜尋,
3.選一個搜尋到的結果,點Headers,往下滑找到user-agent,複製後面那段(如下圖)『Mozilla.....』
(小技巧:直接在網址欄輸入about:version,裡面有使用者代理程式可以複製拉!!)
https://ithelp.ithome.com.tw/upload/images/20220918/20152199Qyj9ASZPM1.png

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"
}
res = requests.get(url,headers = headers)
res.encoding = "utf-8"
res.text

https://ithelp.ithome.com.tw/upload/images/20220918/20152199X7bOqlHRQu.png
耶~~~可以到網頁的所有資料了。

BeautifulSoup

繼續縮小我們要爬取的收盤價,只針對特定表格元素去爬取。

  1. https://ithelp.ithome.com.tw/upload/images/20220918/20152199LAiZyr1Ia9.png
  2. 按一下你要的爬取的數據如「收盤」,在網頁元素「Elements」往上滑,可以看到div='#txtFinDetailData'
    https://ithelp.ithome.com.tw/upload/images/20220918/20152199OtKmGxndqn.png
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text,"lxml")
data = soup.select_one("#txtFinDetailData")
data

https://ithelp.ithome.com.tw/upload/images/20220918/20152199WoA8OgfI6d.png
有沒有比較像了!

排版美化設定

import pandas as pd
dfs = pd.read_html(data.prettify())
df = dfs[0]
df

https://ithelp.ithome.com.tw/upload/images/20220918/20152199zBlic159La.png

把html的資料變dataframe,有看到收盤價了!!!!


上一篇
股價預測篇-爬蟲part2(金融類)
下一篇
股價預測篇-分析part1(金融類)
系列文
從無到有,爬蟲-分析-預測建模,把實務面常見問題逐一釐清18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言