爬蟲——requests基本請求,get和post

get請求

response=requests.get(url=url,params=params,headers=headers)

不帶參數:

在這裏插入圖片描述

response 對象其他重要屬性


import requests

url='https://www.sogou.com/'

response=requests.get(url=url)

#二進制(byte)類型的頁面數據
print(response.content)

# 返回一個響應狀態碼
print(response.status_code)

# 200

# 返回響應頭信息--字典的形式
print(response.headers)

# {'Server': 'nginx', 'Date': 'Tue, 19 Mar 2019 07:31:40 GMT', 'Content-Type': 'text/html; charset=UTF-8', 
#  'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Vary': 'Accept-Encoding', 
#  'Set-Cookie': 'ABTEST=0|1552980700|v17; 

# 獲取請求的url
print(response.url)

帶參數

url直接跟參
在這裏插入圖片描述

# 方式2:
import requests
url = 'https://www.sogou.com/web'

# 將參數封裝到字典中
params = {'query':'周杰倫','ie':'utf8'}
response  = requests.get(url=url,params=params)
response.status_code
#print(response.content)

自定義請求頭

在這裏插入圖片描述

post請求

模擬登陸豆瓣網站抓取登陸後頁面
怎麼樣分辨url?
打開抓包工具,賬號密碼欄提交一般是form表單post請求,抓包工具查post請求,且post請求fromdata攜帶了賬號密碼參數的那個url,然後把formdata的參數取出來用字典封裝下。

# post請求:登陸豆瓣網,獲取登陸成功後的數據
import requests

# 指定url
url='https://accounts.douban.com/j/mobile/login/basic'

data={
'ck':'',
'name':'15937025390',
'password':'9307105520',
'remember':'false',
'ticket':''
    
}

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

# 發起請求  requests.post(url, data=None, json=None, **kwargs)
response = requests.post(url=url,data=data,headers=headers)

# 請求發送成功之後,獲取頁面數據
page_text=response.text
print(page_text)
# 持久化操作
# with open('douban.html','w',encoding='utf-8') as f:
#     f.write(page_text)

ajax請求

get請求

還是普通get方法
在這裏插入圖片描述

import requests
# url='https://movie.douban.com/j/chart/top_list?type=13&interval_id=100%3A90&action=&start=60&limit=20'
url='https://movie.douban.com/j/chart/top_list?'
params={
"type":"13",
"interval_id":"100:90",
"action":"",
"start":"80",
"limit":"20",   
}
# 重點關注start limit
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}

response=requests.get(url=url,params=params,headers=headers)
# 獲取的是json格式的數據
print(response.text)

post請求

與一般post請求一致,抓包工具找出url,找出參數,data傳參。

小結

記住這兩句語法就夠了,知道用抓包工具分析url,參數

response=requests.get(url=url,params=params,headers=headers)
response = requests.post(url=url,data=data,headers=headers)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章