iT邦幫忙

2023 iThome 鐵人賽

DAY 23
1
Modern Web

30天全端:關於網站實作的聊聊系列 第 23

【DAY23】我是安全的user-agent!修改自己的header

  • 分享至 

  • xImage
  •  

還記得昨天被擋的情形嗎?如何解決呢。


遇到被阻擋的問題

還是記得Day22有提到,

請求的同時會把所需資料(headers, cookies, post data)一起帶入。

其實大部分的網頁都會先檢查request headers

確認對方是一個正常的行為,也就是確認是瀏覽器。

檢查request headers的哪裏呢?

user-agent!

  • user-agent : 紀錄瀏覽器、設備

  • 假如user-agent不是瀏覽器而是python很可能被擋,所以我們要修改user-agent

修改自己的header

接下來要來修改自己的header,讓網頁覺得我們是安全的。

  • user-agent : 至開發人員工具那邊查看格式,並作修改。

這邊舉Chatgpt建議我修改的方式為例。/images/emoticon/emoticon37.gif

在原本的程式中,加入指定安全的user-agent!

import requests
from bs4 import BeautifulSoup
from urllib import request

url = 'https://www.ptt.cc/bbs/TY_Research/index.html'

headers = {
     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}

#request
req = request.Request(url, headers=headers)
#response
res = request.urlopen(req)

print(res.read().decode('utf8'))

這樣就可以成功爬取啦。


今天先到這,明天見。


上一篇
【DAY22】爬蟲套件種類 & urllib
下一篇
【DAY24】requests
系列文
30天全端:關於網站實作的聊聊30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言