Python-爬蟲-requests

簡介

#介紹:使用requests可以模擬瀏覽器的請求,比起之前用到的urllib,requests模塊的api更加便捷(本質就是封裝了urllib3)#注意:requests庫發送請求將網頁內容下載下來以后,并不會執行js代碼,這需要我們自己分析目標站點然后發起新的request請求#安裝:pip3 install requests#各種請求方式:常用的就是requests.get()和requests.post()
>>> import requests
>>> r = requests.get('https://api.github.com/events')
>>> r = requests.post('http://httpbin.org/post', data = {'key':'value'})
>>> r = requests.put('http://httpbin.org/put', data = {'key':'value'})
>>> r = requests.delete('http://httpbin.org/delete')
>>> r = requests.head('http://httpbin.org/get')
>>> r = requests.options('http://httpbin.org/get')

1、GET請求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 1、無參數實例
import?requests
ret?=?requests.get('https://github.com/timeline.json')
print?ret.url
print?ret.text
# 2、有參數實例
import?requests
payload?=?{'key1':?'value1',?'key2':?'value2'}
ret?=?requests.get("http://httpbin.org/get", params=payload)
print?ret.url
print?ret.text

向 https://github.com/timeline.json 發送一個GET請求,將請求和響應相關均封裝在 ret 對象中。

2、POST請求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 1、基本POST實例
import?requests
payload?=?{'key1':?'value1',?'key2':?'value2'}
ret?=?requests.post("http://httpbin.org/post", data=payload)
print?ret.text
# 2、發送請求頭和數據實例
import?requests
import?json
url?=?'https://api.github.com/some/endpoint'
payload?=?{'some':?'data'}
headers?=?{'content-type':?'application/json'}
ret?=?requests.post(url, data=json.dumps(payload), headers=headers)
print?ret.text
print?ret.cookies

向https://api.github.com/some/endpoint發送一個POST請求,將請求和相應相關的內容封裝在 ret 對象中。

3、其他請求

1
2
3
4
5
6
7
8
9
10
requests.get(url, params=None,?**kwargs)
requests.post(url, data=None, json=None,?**kwargs)
requests.put(url, data=None,?**kwargs)
requests.head(url,?**kwargs)
requests.delete(url,?**kwargs)
requests.patch(url, data=None,?**kwargs)
requests.options(url,?**kwargs)
# 以上方法均是在此方法的基礎上構建
requests.request(method, url,?**kwargs)

requests模塊已經將常用的Http請求方法為用戶封裝完成,用戶直接調用其提供的相應方法即可

Practice

import requests
import re
'''
請求方式:get、post、put…
參數:params、headers、proxies、cookies、data
'''
rsp=requests.get("https://www.hellobi.com/")
ck=requests.utils.dict_from_cookiejar(rsp.cookies)
title=re.compile("<title>(.*?)</title>",re.S).findall(rsp.text)
hd={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"}
px={"http":"http://127.0.0.1:8888","https":"http://127.0.0.1:8888",}
rsp=requests.get("https://www.hellobi.com/",proxies=px,headers=hd,cookies=ck)
key={"wd":"韋瑋",}
rsp=requests.get("http://www.baidu.com/s",headers=hd,cookies=ck,params=key)
title=re.compile("<title>(.*?)</title>",re.S).findall(rsp.text)postdata={"name":"測試賬號","pass":"測試密碼"}
rsp=requests.post("http://www.iqianyue.com/mypost/",data=postdata)

  

?

轉載于:https://www.cnblogs.com/du-jun/p/10306034.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252475.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252475.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252475.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JS如何監聽動畫結束

場景描述 在使用JS控制動畫時一般需要在動畫結束后執行回調去進行DOM的相關操作&#xff0c;所以需要監聽動畫結束進行回調。JS提供了以下事件用于監聽動畫的結束&#xff0c;簡單總結學習下。 CSS3動畫監聽事件 transitionEnd事件 transitionEnd事件會在CSS transition動畫結束…

封裝一個ViewPager真正的實現圖片無限循環滾動帶導航點

效果圖&#xff1a; 大家在寫項目的過程中常常會碰到須要實現Viewpager里面載入幾張圖片來循環自己主動輪播的效果&#xff0c;假設不封裝一下的話代碼分散在activity里面會顯得非常亂。并且也不利于我們下次復用&#xff0c;所以這里我把viewpager的相關代碼抽取出來放在了一個…

畢業論文頁眉頁腳頁碼插入

用word這么多年&#xff0c;第一次完整的操作了一遍頁眉頁腳頁碼的插入過程&#xff0c;其實三者都要要求奇偶頁不同 1.頁面布局-》右下角箭頭-》版式-》奇偶頁不同 因為文章不同的部分需要插入不同的頁眉頁腳頁碼&#xff0c;所以要在不同的部分插入分解符斷開它們的連接 2、…

巴黎市中心降下2019年第一場雪

當地時間1月22日&#xff0c;法國巴黎市中心降下2019年第一場雪&#xff0c;氣溫也隨之下降&#xff0c;街上的行人和車輛均有所減少。中新社記者 李洋 攝一對情侶在埃菲爾鐵塔前合影留念。無家可歸者在長椅上睡覺。游客在盧浮宮前拍照。

Echarts實現隱藏x軸,y軸,刻度線,網格

"yAxis": [{//就是一月份這個顯示為一個線段&#xff0c;而不是數軸那種一個點點"show" : true,"boundaryGap": true,"type": "category","name": "時間","data": ["1月", "2…

Ubuntu16.04 + Matlab2018+ desktop creation

https://blog.csdn.net/m0_37601622/article/details/82731879 https://blog.csdn.net/l18092482025/article/details/78906436 The second blog teaches you how to download a matlab.png when there is no matlab.png in /usr/share/applications/.

Atom插件主題推薦

注意事項 主題和插件這方面,比 Sublime Text 人性化多了..一些比較用心的作者增加了二度設置功能。 何為二度設置,就是不用手寫代碼修改配置文件&#xff0c;點點鼠標&#xff0c;填填輸入框就能生效&#xff0c;主題以 isotope-ui 這個做例子介紹,看圖&#xff1a; 進入二度設…

印尼發生洪災和山體滑坡 致多人死亡數千人撤離

當地時間1月23日&#xff0c;印尼南蘇拉威西省望加錫居民受洪水影像&#xff0c;用竹筏運送摩托車。近日&#xff0c;印尼南蘇拉威西省暴雨連連&#xff0c;造成洪災和山體滑坡。目前&#xff0c;暴雨引發的洪災和山體滑坡至少已造成8人死亡&#xff0c;數千人被迫撤離家園。。…

Django學習筆記第三篇--關于響應返回

一、返回簡單類型&#xff1a; 1 #1、返回簡單字符串 2 #from django.http import HttpResponse 3 return HttpResponse("return string") 4 #2、返回json 5 return HttpResponse(json.dumps(response_data),content_type"application/json") 二、返回文…

HTTP響應狀態碼

1XX:代表提示信息 2XX:代表成功信息 3XX:代表重定向 4XX:代表客戶端錯誤信息 5XX:代表服務器錯誤 信息 500:500 錯誤是服務器內部錯誤 ,而且是程序上錯誤 為多,可能是你的用戶權限的問題導致,或者是數據庫連接出現了錯誤. 501:服務器501服務器501錯誤是服務器是否具有請求功能.…

pycharm中無法import已經安裝的ros中的庫

使用pycharm寫python程序&#xff0c;無法import 已經安裝的ros包&#xff0c;并提示ImportError: No module named sensor_msgs.msg 解決方法如下 1. pycharm->file->settings->project:csvfile->project interpreter-> 點擊右側下三角選擇 show all 2. 在彈…

tcp/ip知識點的總結

知識點搜集于網絡&#xff0c;在加上自己的總結&#xff0c;還有很多不全&#xff0c;希望大家多提意見&#xff0c;共享學習&#xff01; 一、TCP/IP是什么&#xff1f; TCP/IP是一個協議族&#xff0c;而不是單獨的協議。包括arp、ip、icmp、tcp、udp、http、ftp等協議 二、T…

搜索引擎ElasticSearchV5.4.2系列一之ES介紹

相關博文&#xff1a; 搜索引擎ElasticSearchV5.4.2系列一之ES介紹 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2kibanaV5.4.2x-packV5.4.2安裝 搜索引擎ElasticSearchV5.4.2系列三之ES使用 Elasticsearch 是一個開源的搜索引擎&#xff0c;建立在一個全文搜索引擎…

[譯] 前端組件設計原則

原文地址&#xff1a;Front end component design principles 原文作者&#xff1a;Andrew Dinihan 文中示例代碼&#xff1a;傳送門 限于個人能力&#xff0c;如有錯漏之處&#xff0c;煩請不吝賜教。 前言 我在最近的工作中開始使用 Vue 進行開發&#xff0c;但是我在上一家公…

imu_utils標定imu問題解決

在編譯過程中遇到的一些問題可以參照這個女生的文章 https://blog.csdn.net/fang794735225/article/details/92804030 下面是imu_utils的主頁&#xff0c;可以下載代碼&#xff0c;也有使用步驟 https://github.com/gaowenliang/imu_utils 我下載了imu_utils主頁最后面提供…

術語-服務:PaaS

ylbtech-術語-服務&#xff1a;PaaSPaaS是Platform-as-a-Service的縮寫&#xff0c;意思是平臺即服務。 把服務器平臺作為一種服務提供的商業模式。通過網絡進行程序提供的服務稱之為SaaS(Software as a Service)&#xff0c;而云計算時代相應的服務器平臺或者開發環境作為服務…

PostgreSQL安裝和簡單配置

PostgreSQL安裝與使用 目錄 依賴包的安裝源碼編譯和安裝初始化數據庫集簇簡單配置依賴包安裝 PostgreSQL源碼安裝依賴以下四個軟件包 readline zlib flex bison 在Ubuntu中可是應用以下命令直接進行安裝&#xff1a; sudo apt-get install libreadline6 libreadline6-dev zlib1…

1.App瘦身經驗總結

為什么apk越來越大&#xff1f; 1.項目不斷發展&#xff0c;功能越多&#xff0c;代碼量增加的同時&#xff0c;資源文件也在不斷的增多2.app支持的主流dpi越來越多&#xff0c;如ldpi、mdpi、hdpi、xh xxh xxxh等等&#xff0c;間接導致資源增多3.引入的第三方sdk或開源庫越來…

研究相機和IMU坐標系變換

剛開始錄制的數據時沒有考慮相機和IMU之間的坐標變換&#xff0c;但是后來發現跟蹤效果不好&#xff0c;去查驗imu數據時&#xff0c;發現&#xff0c;我采集保存的imu數據格式沒有和euroc數據集中的imu數據保存格式統一&#xff0c;所以需要研究的是在euroc用于數據采集的設備…

第五天:Swift拖動 item 重排 CollectionView

參考鏈接:https://www.jianshu.com/p/96f956f1479e 1 import UIKit2 3 enum VC: String {4 case ViewController5 case CollectionViewController6 7 func segueIdentifier() -> String {8 switch self {9 case .ViewController:10 …