如何使用request觀察所需要的headers? header與解答相同,但是結果卻顯示頁面不存在?
1. 請問要request觀察出我所需要的headers?
2. 我的header和d18解答相同,但是結果卻顯示頁面不存在
import requests
url = 'http://aicoin.cn/'
headers = {
#'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
#'Accept-Encoding': 'gzip, deflate, br'
#'Accept-Language':' zh-TW,zh;q=0.9,en-US;q=0.8,en;q=0.7'
#'Cache-Control': 'max-age=0'
#'Connection': 'keep-alive'
#'Cookie': 'HWWAFSESID=3628976d521b0d5394; HWWAFSESTIME=1587439298046; _pk_testcookie..undefined=1; _pk_testcookie.2.57ea=1; _ga=GA1.2.243709566.1587439305; _gid=GA1.2.706800466.1587439305; Hm_lvt_3c606e4c5bc6e9ff490f59ae4106beb4=1587439306; _pk_id.2.57ea=3a4b5be0db4c7057.1587439304.3.1587450988.1587450986.; _pk_ses.2.57ea=1; Hm_lpvt_3c606e4c5bc6e9ff490f59ae4106beb4=1587450988; aicoin_session=eyJpdiI6Ildsb0k2d2hWTCtPb1NXQmZpZElnMHc9PSIsInZhbHVlIjoiVVByR29NOUh5Q1Z0NERXWGptOWFmdDd2QmVZTTg0Zk9VMDZEUEV5RnFmYTc0dWQxN1VYRVJESXFPbEFWazY1c0xBWVdlS3B0MTVEZnlIVVUyT0JhYVE9PSIsIm1hYyI6ImVlYmM4MTI1MTczZDU5NDNlZTk2NmNhMGQ2NzA1NTc1NzNmMWRjMzhmMGRiMDA0ZWQ4NjliMmE1MGMxN2Y2MGQifQ%3D%3D'
#'Host': 'www.aicoin.cn'
#'If-None-Match': 'W/"159dfe-gZfwM6JqG42FoDW412bbLlkKQAI"'
#'Sec-Fetch-Dest': 'document'
#'Sec-Fetch-Mode': 'navigate'
#'Sec-Fetch-Site': 'none'
#'Sec-Fetch-User': '?1'
#'Upgrade-Insecure-Requests': '1'
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'
}
r = requests.get(url, headers=headers)
print(r.text[0:600])
<!DOCTYPE html><html><head><meta charSet="utf-8" class="next-head"/><meta name="viewport" content="width=device-width, initial-scale=1.0" class="jsx-1554617145 next-head"/><meta name="robots" content="noindex" class="jsx-1554617145 next-head"/><title class="jsx-1554617145 next-head">404: 页面不存在 | AICoin</title><link rel="preload" href="https://assets-www.aicoin.net.cn/beta-v20/_next/static/6hleXWGgG2fXN8NUZ9Ide/pages/_app.js" as="script"/><link rel="preload" href="https://assets-www.aicoin.net.cn/beta-v20/_next/static/6hleXWGgG2fXN8NUZ9Ide/pages/_error.js" as="script"/><link rel="preload" href=
回答列表
-
2020/04/23 上午 11:39CUPOY贊同數:0不贊同數:0留言數:0
哈囉親愛的DING學員您好
感謝您的耐心久候,目前已請專家瞭解並處理您的問題狀況,祝福學習愉快!
-
2020/04/24 下午 07:35Jeffrey贊同數:0不贊同數:1留言數:0
2. 我的header和d18解答相同,但是結果卻顯示頁面不存在
--> 通常是因為WebAPI 有變動,
--> 可能出現的情況是:網站已經把爬蟲定性為一個網絡機器人直接拒絕了
--> 檢查網站生成的 cookie,有一些瀏覽器插件可以顯示訪問網站和離開網站時 cookie 是如何設置的。EditThisCookie(http://www.editthiscookie.com/)
-
2020/04/24 下午 07:38Jeffrey贊同數:0不贊同數:1留言數:0
1. 請問要request觀察出我所需要的headers?
import requests
uri = 'https://ithelp.ithome.com.tw/questions'
#自訂表頭
my_headers = {'user-agent': 'my-app/0.0.1'}
#將自訂表頭加入 GET 請求中
r = requests.get(uri, headers = my_headers)
#需要帳號登入的網頁
r = requests.get(uri, auth=('帳號', '密碼'))
#等待 3 秒無回應則放棄
requests.get('http://github.com/', timeout = 3)
相關資訊可以參考:
-
2020/04/25 下午 09:40張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0
嗨,經過測試之後,以下補充:
1. 將 http://aicoin.cn 貼在瀏覽之後,會發現他會被轉址到 https://www.aicoin.cn/ 。因此,我們利用瀏覽器觀察到的 Headers 其實是針對 https://www.aicoin.cn/ 網址的。如果直接使用的話,是會被 http://aicoin.cn 拒絕的。第一種做法,可以將原題目改為轉址之後的網址。
2. 第二種方法,可以把原本 Headers 中帶有位址相關的欄位拿掉試試看,例如:
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃
-
2020/04/25 下午 09:42張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0
嗨,簡單回覆你的問題:
1. 請問要request觀察出我所需要的headers?
=> 利用 Chrome 的開發者工具。
2. 我的header和d18解答相同,但是結果卻顯示頁面不存在
=> 該網站的架構有改變,可以參考我上一個的回答。
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃