日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

03-requests模块携带UA请求头,携带参数,携带cookie,持久化存储

發布時間:2024/9/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 03-requests模块携带UA请求头,携带参数,携带cookie,持久化存储 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

reques模塊的基礎使用方法

chrome瀏覽器使用方法了解新建隱身窗口的目的,了解chrome中network的使用

1,新建隱身窗口(無痕窗口

  • 瀏覽器中直接打開網站,會自動帶上之前網站保存的cookie,但是在爬蟲中首次獲取頁面是沒有攜帶cookie的
  • 使用無痕窗口,首次打開網站,不會帶上cookie,能夠觀察頁面的獲取情況,包括對方服務器如何設置cookie在本地
    2,chrome中network的更多功能

攜帶請求頭

攜帶請求參數
params 將字典或字節序列,作為參數添加到url中,get形式的參數
data 將字典或字節序列,作為參數添加到url中,post形式的參數

response響應對象

  • response.url 響應的url:有時候響應的url和請求的url并不一致
  • response.text 響應體 str類型
  • respones.content 響應體 bytes類型
  • response.status_code 響應狀態碼
  • response.request.headers 響應對應的請求頭
  • response.headers 響應頭
  • response.request.cookies 響應對應請求的cookie
  • response.cookies 響應的cookie(經過了set-cookie動作)
  • response.json() 自動將json字符串類型的響應內容轉換為python對象(dict or list)
# -*- coding: utf-8 -*- import requests # 調用requests模塊url = "https://www.baidu.com/s" # 目標網站url headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"} #模仿瀏覽器UA頭 params = {"ie":"utf-8","f":"8","tn":"baidu","wd":"python"} # 攜帶的參數信息 response = requests.get(url=url,params=params,headers=headers) #發起get請求獲取網頁源碼 print(response.text) # 打印獲取到的數據 .text 表示網站源碼中的str類型數據 with open("baidu.html","w",encoding="utf-8")as f: # 持久化存儲f.write(response.text)

爬取到的網站源碼信息

爬取的結果展示


cookie:
- 是存儲在客戶端的一組鍵值對
- web中的cookie典型應用免密登錄
- cookie和爬蟲的關聯:對一張頁面進行請求的時候,如果請求的過程中不攜帶cookie的話,那么我們無法請求到正確的頁面數據,因此cookie是爬蟲中一個非常典型且常見的反爬機制。
代碼展示

# -*- coding: utf-8 -*- import requestsheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36","Cookie":"_octo=GH1.1.502210902.1591416334; _ga=GA1.2.1767918695.1591416340; _device_id=8405b42c22b41f9661c91bb261f36773; user_session=A_QQWFoMfi0BySDXrcgL9xIX1kRxEMJ7Iq-J6NqRY5MRQe3H; __Host-user_session_same_site=A_QQWFoMfi0BySDXrcgL9xIX1kRxEMJ7Iq-J6NqRY5MRQe3H; logged_in=yes; dotcom_user=gemoumou; has_recent_activity=1; _gat=1; tz=Asia%2FShanghai; _gh_sess=2C%2BL%2FZjiXRtu1VCMWLaJK5z3qDteiGhOR%2F8hw5UDQusDnaKbsiQgYXX2a7w5DF%2FIeaCs45x%2FJ%2BvVWDPfHmihl%2BYZB%2FrUeUxQvQsoFkAw3sxWp9%2FcW5fzEjgxsgTp1SK91pCJZL%2BqkZ%2FjNbSg1p5CnlcLsQknfPPsyWb1udKZGjOmCO%2FsiOxHYeQh40VY2Cb4--ntjbQ3ClVbvtSvyq--zYhwrU5j4GhzntVvHo%2FoDA%3D%3D" } #模仿瀏覽器UA頭url = "https://github.com/gemoumou" response = requests.get(url=url,headers=headers).textprint(response) with open('github.html','w',encoding='utf-8')as f:f.write(response)

未攜帶cookie
攜帶cookie結果

攜帶cookie爬取的數據展示(已登錄)

自動獲取cookie
案例雪球網
分析:1,爬取的咨詢信息是動態加載的:相關更多的咨詢數據是動態加載的,鼠標滾輪滑動到底部的時候會動態加載出更多咨詢數據。
2,定位到ajax請求的數據包,提取出請求url,相應數據為json形式的咨詢數據。



代碼展示

# -*- coding: utf-8 -*- import requestsheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"} #模仿瀏覽器UA頭session = requests.Session() #創建session對象main_url = "https://xueqiu.com" # 第一次使用session捕獲且存儲cookie,猜測對雪球網首頁發起請求可能會產生cookie session.get(main_url,headers=headers)#捕獲存儲cookie print(session.cookies)#打印實時的cookie信息 print("_" * 20 + "分隔符" + "_"*20) url = "https://xueqiu.com/statuses/hot/listV2.json?since_id=-1&max_id=96837&size=15"# 定位到ajax請求數據包,提取請求url page_text = session.get(url=url,headers=headers).json()# 攜帶cookie發起請求 print(page_text)

總結

以上是生活随笔為你收集整理的03-requests模块携带UA请求头,携带参数,携带cookie,持久化存储的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。