logo
Loading...

如何使用request觀察所需要的headers? header與解答相同,但是結果卻顯示頁面不存在? - Cupoy

1. 請問要request觀察出我所需要的headers?2. 我的header和d18解答相同,但...

pycrawler-2-d18

如何使用request觀察所需要的headers? header與解答相同,但是結果卻顯示頁面不存在?

2020/04/21 下午 03:26
Python網路爬蟲討論版
DING
觀看數:8
回答數:6
收藏數:1
pycrawler-2-d18

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'
}

= 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:39
    CUPOY
    贊同數:0
    不贊同數:0
    留言數:0

    哈囉親愛的DING學員您好


    感謝您的耐心久候,目前已請專家瞭解並處理您的問題狀況,祝福學習愉快!

  • 2020/04/24 下午 07:35
    Jeffrey
    贊同數:0
    不贊同數:1
    留言數:0

    2. 我的header和d18解答相同,但是結果卻顯示頁面不存在

    --> 通常是因為WebAPI 有變動, 

    --> 可能出現的情況是:網站已經把爬蟲定性為一個網絡機器人直接拒絕了

    --> 檢查網站生成的 cookie,有一些瀏覽器插件可以顯示訪問網站和離開網站時 cookie 是如何設置的。EditThisCookie(http://www.editthiscookie.com/

  • 2020/04/24 下午 07:38
    Jeffrey
    贊同數: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)


    相關資訊可以參考:

    https://ithelp.ithome.com.tw/articles/10206215

  • 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 😃😃😃