Python爬虫网安-request+示例

目录

get&post

自定义请求头

文件上传

添加cookie获取网页

使用cookiejar

session

ssl证书校验超时身份认证(httpbasicAuth)

代理配置


get&post

#!/usr/bin/env python

import requests

#get
# r = requests.get('http://httpbin.org/get')
# print(r.text)

# 添加参数的get请求
data = {
    'name':'kenan',
    'age':'16'
}
r = requests.get('http://www.baidu.com/get',params=data)
print(r.text)
#!/usr/bin/env python

import requests

# post
data = {
     'name':'kenan',
     'age':'16'
}
r = requests.post('http://httpbin.org/post',data=data)
print(r.text)

自定义请求头

#!/usr/bin/env python

import requests

headers = {
    'Usrt-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
}
r = requests.get('https://www.zhihu.com',headers=headers)
print(r.text)

文件上传

import requests

url = 'http://httpbin.org/post'
files = {'file':open('a.txt','rb')}
r = requests.post(url,files=files)
print(r.text)

添加cookie获取网页

import requests

url = 'https://www.zhihu.com'
# r = requests.get(url=url)
# print(r.cookies)
# for key,value in r.cookies.items():
#     print(key + '=' + value)

headers = {
    'Cookie':'_zap=65985310-a068-4c12-ae0a-56251c2c5c12; d_c0=AbCTugmbSBePTrEOSOMV93HuhQPipyoMkyM=|1692789471; YD00517437729195%3AWM_TID=emVDLGILJsBERAVQVAeAkpebh4G4Aa0t; __snaker__id=zptBm6fqrykPGJWm; YD00517437729195%3AWM_NI=SQ6wtpN50b7JklREIGLJWfA7KXvU0ElY78UhdWVg5RLCcXFSmIutvYWSTxuU4CpLkUPWI2Y4mwYdcmBA086%2BVej4kBzqutG6WzywEoor7JT9in6Xt7l1sOIXt%2ByjYphdTVg%3D; YD00517437729195%3AWM_NIKE=9ca17ae2e6ffcda170e2e6ee83aa66a1ecfd96eb4b8ea88aa7c44e838b8a87c56297abf990f15cf68e9887d02af0fea7c3b92a918ffa98f77c8eeb0083b642a9b49ea6cc4d90969987c43d8988bab6b34fb087f9d9d864a8899a88b85a909dadb9c559af97bb95f553958d9c99f85ff89dc0adea5f948987d3dc40afa99785e267829f00d9b52196bba6d5ea4abaafbb95c63e95a6b798c865adaef9abd733abb2fab9f73db0efbdb0cc54b8f5b78bdc7cacbc9cb7e637e2a3; _xsrf=jWERx0Ik6tjUozZKGWIpPBRGFOJ6QYhq; l_cap_id="NWI2N2QwMDM0MjUzNDU4OWExMmE3NmI0Y2I5ZTc3MmQ=|1693290667|022d1fb6013e570378e4fa421ac1e25e984e3165"; r_cap_id="YjY0YWI2YjcyM2QxNGI1Mjg5MTM5ZmRjMGEwYzEwYTg=|1693290667|1fcd27c525bc660ecf654c711ac76b67d452689c"; cap_id="YjU5YjE5MzFjN2ZlNDhlZDhlYWQ0NTE5OTRkZTRjZjU=|1693290667|a118f84fa5d20957be92227edacf0e66d30eeec0"; captcha_session_v2=2|1:0|10:1693292926|18:captcha_session_v2|88:TWFFU1NCVHlldDVJaTR5cTlwM2h4SmhGeTJTZ010WFV5Rm8xVzE3WWpOUjFyL0xkcVI3TjZGeHNxY3FGVmxCVQ==|2ce870f0a811b7f7d08e168a66921c06fe61a12bda683b178a4b602e4752f7a0; gdxidpyhxdE=QGggrpC%2BxZPIYJYBt8R4ujh6KD%5CTpC9W20pZ6YAcDsSM81tdUWJuNon2TBMMS3NC%2BjjbAMgsmIoioR%2BnaJbPnN3TJma2%2B%5C%5CVBm7gS4%5CsviBdQK6%2BolIZbAtHwcEfBz0VRYv6eQ%2FjmU4SrTrwXqesKfBaqvIRyDvr69M1gSgHinN%2FUV1s%3A1693293827600; q_c1=c4dd7565996f498d8689e31708ec9ef1|1693292955000|1693292955000; z_c0=2|1:0|10:1693292957|4:z_c0|92:Mi4xVWdrZUJnQUFBQUFCc0pPNkNadElGeVlBQUFCZ0FsVk5tdWZhWlFEa0pEVnZ5MGRVbmNuQzhDM3ljT0VyVnFUUUtB|924bb27a52a11d16167abbc8c01824e09e82e2df7f3724ceea2b675a569137ad; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1693288624,1693290816,1693292927,1693315711; SESSIONID=7NnIui3CdpkQ2CVVCuillDLNphd1UQs3BxB7AVZiwUy; JOID=VlwQC0nBLspKFqRRHM0YnbfzUXEK9mGpCWXNY1KjXqAWLuEHS0DQICIQpV0bHMfWHsi4i_WxPEPuNtHxDESP0qY=; osd=UF0dC0LHL8dKHaJQEc0Tm7b-UXoM92ypAmPMblKoWKEbLuoBSk3QKyQRqF0QGsbbHsO-ivixN0XvO9H6CkWC0q0=; Hm_lpvt_98beee57fd2ef70ccdd5ca52b9740c49=1693316313; tst=r; KLBRSID=f48cb29c5180c5b0d91ded2e70103232|1693316989|1693315625',
    'Usrt-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
}
r = requests.get(url=url,headers=headers)
with open('1.html','wb') as f:
    f.write(r.text.encode('utf-8'))

使用cookiejar

import requests.cookies 


Cookie='_zap=65985310-a068-4c12-ae0a-56251c2c5c12; d_c0=AbCTugmbSBePTrEOSOMV93HuhQPipyoMkyM=|1692789471; YD00517437729195%3AWM_TID=emVDLGILJsBERAVQVAeAkpebh4G4Aa0t; __snaker__id=zptBm6fqrykPGJWm; YD00517437729195%3AWM_NI=SQ6wtpN50b7JklREIGLJWfA7KXvU0ElY78UhdWVg5RLCcXFSmIutvYWSTxuU4CpLkUPWI2Y4mwYdcmBA086%2BVej4kBzqutG6WzywEoor7JT9in6Xt7l1sOIXt%2ByjYphdTVg%3D; YD00517437729195%3AWM_NIKE=9ca17ae2e6ffcda170e2e6ee83aa66a1ecfd96eb4b8ea88aa7c44e838b8a87c56297abf990f15cf68e9887d02af0fea7c3b92a918ffa98f77c8eeb0083b642a9b49ea6cc4d90969987c43d8988bab6b34fb087f9d9d864a8899a88b85a909dadb9c559af97bb95f553958d9c99f85ff89dc0adea5f948987d3dc40afa99785e267829f00d9b52196bba6d5ea4abaafbb95c63e95a6b798c865adaef9abd733abb2fab9f73db0efbdb0cc54b8f5b78bdc7cacbc9cb7e637e2a3; _xsrf=jWERx0Ik6tjUozZKGWIpPBRGFOJ6QYhq; l_cap_id="NWI2N2QwMDM0MjUzNDU4OWExMmE3NmI0Y2I5ZTc3MmQ=|1693290667|022d1fb6013e570378e4fa421ac1e25e984e3165"; r_cap_id="YjY0YWI2YjcyM2QxNGI1Mjg5MTM5ZmRjMGEwYzEwYTg=|1693290667|1fcd27c525bc660ecf654c711ac76b67d452689c"; cap_id="YjU5YjE5MzFjN2ZlNDhlZDhlYWQ0NTE5OTRkZTRjZjU=|1693290667|a118f84fa5d20957be92227edacf0e66d30eeec0"; captcha_session_v2=2|1:0|10:1693292926|18:captcha_session_v2|88:TWFFU1NCVHlldDVJaTR5cTlwM2h4SmhGeTJTZ010WFV5Rm8xVzE3WWpOUjFyL0xkcVI3TjZGeHNxY3FGVmxCVQ==|2ce870f0a811b7f7d08e168a66921c06fe61a12bda683b178a4b602e4752f7a0; gdxidpyhxdE=QGggrpC%2BxZPIYJYBt8R4ujh6KD%5CTpC9W20pZ6YAcDsSM81tdUWJuNon2TBMMS3NC%2BjjbAMgsmIoioR%2BnaJbPnN3TJma2%2B%5C%5CVBm7gS4%5CsviBdQK6%2BolIZbAtHwcEfBz0VRYv6eQ%2FjmU4SrTrwXqesKfBaqvIRyDvr69M1gSgHinN%2FUV1s%3A1693293827600; q_c1=c4dd7565996f498d8689e31708ec9ef1|1693292955000|1693292955000; z_c0=2|1:0|10:1693292957|4:z_c0|92:Mi4xVWdrZUJnQUFBQUFCc0pPNkNadElGeVlBQUFCZ0FsVk5tdWZhWlFEa0pEVnZ5MGRVbmNuQzhDM3ljT0VyVnFUUUtB|924bb27a52a11d16167abbc8c01824e09e82e2df7f3724ceea2b675a569137ad; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1693288624,1693290816,1693292927,1693315711; SESSIONID=7NnIui3CdpkQ2CVVCuillDLNphd1UQs3BxB7AVZiwUy; JOID=VlwQC0nBLspKFqRRHM0YnbfzUXEK9mGpCWXNY1KjXqAWLuEHS0DQICIQpV0bHMfWHsi4i_WxPEPuNtHxDESP0qY=; osd=UF0dC0LHL8dKHaJQEc0Tm7b-UXoM92ypAmPMblKoWKEbLuoBSk3QKyQRqF0QGsbbHsO-ivixN0XvO9H6CkWC0q0=; Hm_lpvt_98beee57fd2ef70ccdd5ca52b9740c49=1693316313; tst=r; KLBRSID=f48cb29c5180c5b0d91ded2e70103232|1693316989|1693315625'
#创建一个空的RequestsCookieJar来保存cookies
jar = requests.cookies.RequestsCookieJar()
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
}
#遍历分割cookies字符串,将每一个cookie的建值对添加到 cookiejar中
for cookie in Cookie.split(';'):
    key,value = cookie.split('=',1)
    # print(key)
    jar.set(key,value)
  
#发送请求并且附带cookies和header    
r = requests.get('http://www.zhihu.com',cookies=jar,headers=headers)
with open('2.html','wb') as f:
    f.write(r.text.encode('utf-8'))    

session

import requests

# r1 = requests.get('http://httpbin.org/cookies/set/number/123456')
# print(r1.text)
# r2 = requests.get('http://httpbin.org/cookies')
# print(r2.text)

#1.创建一个session
s = requests.Session()

#2.向网站发送get并且设置cookie
s.get('http://httpbin.org/cookies/set/number/123456')
#3.再次发送请求 获取当前会话里的cookie
r = s.get('http://httpbin.org/cookies')
print(r.text)

ssl证书校验
超时
身份认证(httpbasicAuth)

import requests
from requests.auth import HTTPBasicAuth

# r = requests.get('https://ssr2.scrape.center/')
# print(r.status_code)

# r = requests.get('https://ssr2.scrape.center/',verify=False,timeout=0.1)
# print(r.status_code)

r = requests.get('https://ssr3.scrape.center/',verify=False,auth=HTTPBasicAuth('admin','admin'))
print(r.text)

代理配置

import requests

# HTTP/HTTPS 代理配置
proxy_list = {
    'http': 'http://代理地址:端口',
    'https': 'http://代理地址:端口'
}

# SOCKS 代理配置示例(需安装依赖:pip install requests[socks])
socks_proxy = {
    'http': 'socks5://username:password@host:port',
    'https': 'socks5://username:password@host:port'
}

try:
    # 使用 HTTP 代理发送请求
    response = requests.get('https://www.baidu.com', proxies=proxy_list, timeout=10)
    print(response.status_code)

    # 使用 SOCKS 代理发送请求
    response_socks = requests.get('https://www.baidu.com', proxies=socks_proxy, timeout=10)
    print(response_socks.status_code)

except requests.exceptions.RequestException as e:
    print(f"请求失败: {e}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值