104學習

HTTP協定

HTTP協定
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

取消
「HTTP協定:負責定義網際網路上資料傳輸的規範與流程,確保用戶端與伺服器之間的有效通訊。主要職責包括設計與優化請求/回應機制、管理網路安全性以及確保資料完整性與隱私。所需技能包括扎實的網路協定知識、跨部門協作能力及良好的問題解決能力,能夠在快節奏的科技環境中快速反應並提供解決方案。此職位面臨台灣不斷演變的數位轉型挑戰,需適應當地市場需求,並與本地業者保持緊密溝通,推動技術創新與應用。」
關於教室
關注人數 0 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
教室標籤
關於教室
關注人數 0 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
教室標籤
Hi~ 歡迎分享學習資源,有學習問題可匿名向Giver發問!
我要分享
我要提問

HTTP協定 學習推薦

Mike Ku

Learn Code With Mike品牌創辦人

2021/11/18

掌握這6個開發重點優化Python網頁爬蟲的效率與穩定度
Q:如何正確設定Python網頁爬蟲的HTTP Headers(標頭)?
由於現在很多人使用Python網頁爬蟲爬取所需的資料,因此,有些網站會針對網頁爬蟲進行偵測,當Python網頁爬蟲沒有設定HTTP Headers(標頭),很容易就會被擋下來。
所以,Python網頁爬蟲在發送請求時,最好要設定HTTP Headers(標頭),如下範例:
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
}
response = requests.get(url, headers=headers, timeout=5)
如果不知道自己的User Agent(使用者代理),可以在Google搜尋的地方輸入「what is my user agnet」,按下搜尋即可得到。
Q:如何正確設定Python網頁爬蟲的設定HTTP Request timeout(超時)屬性?
Python網頁爬蟲在發送請求時,如果沒有設定timeout(超時)屬性,當目標網站沒有回應,請求將會持續嘗試和等待回應,除了造成目標網站的困擾,Python網頁爬蟲也無法繼續執行。如下範例:
headers = {
'user-agent': '...'
}
response = requests.get(url, headers=headers, timeout=5)
只要Python網頁爬蟲發送請求後,5秒內沒有接收回應,就會停止嘗試和等待。
Q:Python網頁爬蟲如何檢查HTTP Status Code(狀態碼)?
Python網頁爬蟲接收到網站的回應結果後,最好可以檢查HTTP Status Code(狀態碼)來確認是否正確,如下範例:
if response.status_code == 200: #正確
#接續執行
或是如下範例:
if response.status_code != 200: #不正確
return False
Q:Python網頁爬蟲如何檢查爬取的元素是否存在?
Python網頁爬蟲最普遍會遇到的問題,就是網頁的元素或樣式改變,導致整個網頁爬蟲中斷和發生錯誤。而最好的預防方法就是先檢查爬取的元素(Element)是否存在,再執行其它的任務,如下範例:
if title: #標題元素存在
#接續執行
else:
# 顯示警告訊息或發送訊息給管理人員
Q:Python網頁爬蟲的例外處理機制是什麼?
為了預防Python網頁爬蟲在執行的過程中,發生預期外的錯誤,以及後續能夠有效追蹤問題,最好實作例外處理機制,如下範例:
try:
# 爬蟲邏輯
...
titles = soup.find_all('h3', {'class': 'post_title'})
result = []
for title in titles:
if title:
result.append(title.getText())
else:
print('元素不存在')
else:
print('回應結果錯誤')
except Exception as e:
print("發生其它錯誤")
print(str(e))
Q:Python網頁爬蟲的檔案輸入/出(I/O)機制是什麼?
Python網頁爬蟲爬取到資料後,最常見的就是資料儲存,像是寫入資料庫、CSV或文字檔等,相較於在爬取的迴圈中進行讀、寫操作,會建議先將爬取的資料打包成串列(List)、元組(Tuple)或字典(Dictionary)等,爬取結束時再一次性寫入較有效率。如下範例:
try:
with open('post.txt', 'w') as file:
file.write('\n'.join(result)) #寫入爬取結果
except Exception as ex:
print(str(ex))
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2021/11/6-tips-to-build-an-efficient-python-scraper.html )網站觀看更多精彩內容。
看更多
2 0 498 2

熱門精選

104學習

產品

03/26 01:07

不會寫程式,也能用AI打造高效率工作流|2週完成你的第一個自動化專案
【超早鳥優惠到4/6】🔥領53折券現折🔥
【獨家-名額倒數】前20名報名再贈200元LIN點數
【2 天假日直播學習營】第一屆 - AI行政工作流學習營​|5/17(日)、5/31(日) 假日直播課
對AI工作流充滿興趣、期待應用AI提升日常行政工作效率,卻不知如何開始?
⚡從 2週學習 × AI自動化專案實作 → 完訓取得證書⚡
🚀本屆104提供參加的學員,專屬獨家加值服務:【104完訓認證加入履歷】🚀
🚀 本次學習營獨家特色 - 循序漸進+實作應用🚀
✨真實工作場景應用:手把手學習真實工作場景如何應用AI實現自動化, 老師帶你一起來闖關!
✨完整AI專案實作:兩週循序漸進從學習、實作到應用,親手完成自己的AI工作流提案。
✨專屬學習社群共學:加入課程專屬 LINE 群組,除了能與AI工作流領域跨領域學員夥伴一同交流實戰心得,更有講師在群組中親自為你指點迷津、解答疑惑,讓學習從教室延伸到工作現場。
【保握超早鳥優惠】
看更多
1 0 7271 0
你可能感興趣的教室