Python爬蟲requests庫多種用法實(shí)例
requests安裝和使用
下載安裝:pip install requests
#requests模塊
import requests
#發(fā)送請求 content:以二進(jìn)制的形式獲取網(wǎng)頁的內(nèi)容
response=requests.get("http://www.baidu.com").content.decode()
#response=requests.request("get","http://www.baidu.com").content.decode()
print(response)
添加請求頭和參數(shù)
import requests
url="http://www.baidu.com/s?"
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/81.0.4044.138 Safari/537.36"
}
wd={"wd":"中國"}
response=requests.get(url,params=wd,headers=headers)
# 返回一個(gè)字符串形式的數(shù)據(jù)
data=response.text
# 返回一個(gè)二進(jìn)制形式的數(shù)據(jù)
data2=response.content
print(data2.decode())
處理Post請求
處理get請求:get()方法
處理post請求:post()方法
import requests
import re
#構(gòu)造請求頭信息
header={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/81.0.4044.122 Safari/537.36"
}#谷歌瀏覽器
#http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule 網(wǎng)頁上的url
url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
key="靚仔"
#發(fā)送到web服務(wù)器的表單數(shù)據(jù)
formdata={
"i":key,
"from":"AUTO",
"to":"AUTO",
"smartresult":"dict",
"client":"fanyideskweb",
"salt":"15880563488791",
"sign":"cc2c40d740538fc5edc0380891faef27",
"ts":"1588053583943",
"bv":"f9c86b1fdf2f53c1fefaef343285247b",
"doctype":"json",
"version":"2.1",
"keyfrom":"fanyi.web",
"action":"FY_BY_REALTlME"
}
response=requests.post(url,headers=header,data=formdata)
# 獲取到的是json數(shù)據(jù)
# 對應(yīng)的是字典
# print(response.json())
pat=r'"tgt":"(.*?)"}]]' #字符串中有"",再用''括起來表示字符串
# 獲取到的是字符串
result=re.findall(pat,response.text)
print(result[0])
代理IP
import requests
#設(shè)置ip地址
#proxy={"http":"http://代理ip地址:端口號"}
#可以設(shè)置多個(gè)
proxy={
"http":"http://222.82.130.23:8060",
"http":"http://101.248.64.68:80",
}
response=requests.get("http://www.baidu.com",proxies=proxy)
print(response.content.decode())
獲取響應(yīng)的cookie
cookie:用戶信息
import requests
response=requests.get("http://www.baidu.com")
#1.獲取返回的cooketjar對象
cookiejar=response.cookies
#2.將cookiejar轉(zhuǎn)換成字典
cookiedict=requests.utils.dict_from_cookiejar(cookiejar)
print(cookiedict)
session實(shí)現(xiàn)登陸
相比直接使用cookie,創(chuàng)建session可以得到新的cookie信息,不會出現(xiàn)cookie失效的情況
#使用session實(shí)現(xiàn)登陸
import requests
#構(gòu)造請求頭信息
header={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/81.0.4044.122 Safari/537.36"
}#谷歌瀏覽器
#創(chuàng)建session對象
ses=requests.session()
#構(gòu)造登陸需要的參數(shù)
data={"email":"325*****@qq.com","password":"123321a"}
#通過傳遞用戶名密碼得到cookie信息
ses.post("http://www.renren.com/PLogin.do",data=data,headers=header)
#請求需要的頁面,每次請求會帶入cookie信息
response=ses.get("http://www.renren.com/880151247/profile")
print(response.text)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Async IO在Python中進(jìn)行異步編程的步驟詳解
許多程序員都熟悉編寫順序(同步)代碼,在異步世界中,事件的發(fā)生獨(dú)立于主程序流程,異步編程范例有助于并發(fā)執(zhí)行這些任務(wù),并確保您可以克服等待時(shí)間并更有效地使用資源,本文給大家介紹了使用Async IO在Python中進(jìn)行異步編程,需要的朋友可以參考下2023-11-11
python如何實(shí)現(xiàn)異步調(diào)用函數(shù)執(zhí)行
這篇文章主要介紹了python如何實(shí)現(xiàn)異步調(diào)用函數(shù)執(zhí)行,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
本地部署Python?Flask并搭建web問答應(yīng)用程序框架實(shí)現(xiàn)遠(yuǎn)程訪問的操作方法
Flask是一個(gè)Python編寫的Web微框架,使用Python語言快速實(shí)現(xiàn)一個(gè)網(wǎng)站或Web服務(wù),本期教程我們使用Python Flask搭建一個(gè)web問答應(yīng)用程序框架,并結(jié)合cpolar內(nèi)網(wǎng)穿透工具將我們的應(yīng)用程序發(fā)布到公共網(wǎng)絡(luò)上,實(shí)現(xiàn)可多人遠(yuǎn)程進(jìn)入到該web應(yīng)用程序訪問,需要的朋友可以參考下2023-12-12
用Python和WordCloud繪制詞云的實(shí)現(xiàn)方法(內(nèi)附讓字體清晰的秘笈)
這篇文章主要介紹了用Python和WordCloud繪制詞云的實(shí)現(xiàn)方法(內(nèi)附讓字體清晰的秘笈),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
Python實(shí)現(xiàn)郵件發(fā)送的詳細(xì)設(shè)置方法(遇到問題)
這篇文章主要介紹了Python實(shí)現(xiàn)郵件發(fā)送的詳細(xì)設(shè)置方法(遇到問題),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Python?sklearn?中的?make_blobs()?函數(shù)示例詳解
make_blobs()?是?sklearn.datasets中的一個(gè)函數(shù),這篇文章主要介紹了Python?sklearn?中的?make_blobs()?函數(shù),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
django框架面向?qū)ο驩RM模型繼承用法實(shí)例分析
這篇文章主要介紹了django框架面向?qū)ο驩RM模型繼承用法,結(jié)合實(shí)例形式分析了Django框架ORM模型抽象類繼承、多表繼承及代理模型繼承三種繼承方式實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07
詳解Python中的魔法函數(shù)與量子計(jì)算模擬
這篇文章主要介紹了python的魔法函數(shù)和量子計(jì)算模擬,我們可以通過一個(gè)實(shí)際的案例來先審視一下這兩個(gè)需求是如何被結(jié)合起來的,希望對大家有所幫助2023-03-03

