proxy代理 (通用代理)
import requests url='http://docs.python-requests.org/en/master/' proxies={ 'http':'127.0.0.1:8080', 'https':'127.0.0.1:8080' } r = requests.get(url,proxies=proxies) print(r.status_code)
proxy代理 (私密代理)
'http':'sea:123@127.0.0.1:8080',
import requests url='http://docs.python-requests.org/en/master/'
user="sea"
password="123" proxies={ 'http':user+':'+password+'@127.0.0.1:8080', 'https':user+':'+password+'@127.0.0.1:8080' } r = requests.get(url,proxies=proxies) print(r.status_code)
cookies 参考:https://www.cnblogs.com/ddddfpxx/p/8624715.html
利用POST发送用户名、密码及验证码。这里的验证码没有进行识别,只好先读取验证验图片,手动输入。
获取cookies:
def GetCookie(): imgUrl='http://***/authcode.php' s=requests.session() print(s.cookies.get_dict())#先打印一下,此时一般应该是空的。 res=s.get(imgUrl,stream=True) im=Image.open(BytesIO(res.content)) im.show() code=input() loginUrl='http://***/admin_loginCheck.php' postData={'pname':'admin','password':'***','validateCode':code} rs=s.post(loginUrl,postData) c=requests.cookies.RequestsCookieJar()#利用RequestsCookieJar获取 c.set('cookie-name','cookie-value') s.cookies.update(c) print(s.cookies.get_dict())
这种获取cookies后,然后带cookies 请求, 时长并没有什么用
推荐这种: 先登录获取cookies 然后通过带上cookies访问:
第2种 先发送post请求,获取cookie,带上cookie请求登陆之后的页面 这里要用到一个seesion类,seesion 实例具有的方法和requests一样,但是 seesion具有保持功能, 就类似浏览器输入一次密码之后,会自动保留cookie seesion = requests.seesion() seesion.post(url, data, headers) # 服务器设置在本地的cookie会保存在本地 seesion.get(url) # 会带上之前保存在seesion中的cookie,能够请求成功 这种方法要先提交自己的账号密码,并且要找到提交的地址。那么如何找到提交地址呢? 第一种方式:找form表单的action属性 原文链接:https://blog.csdn.net/williamgavin/article/details/81390014
import requests headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"} seesion = requests.session() # 因为人人网有from表单,所以可以直接找地址:http://www.renren.com/PLogin.do # 如果没有的就要抓包了 post_url = "http://www.renren.com/PLogin.do" # form表单里面直接找到的 #post_url = "http://www.renren.com/ajaxLogin/login? # 用户名作为键, 真正的密码作为值 模拟登陆 post_data = {"email":"xxxx", "password":"xxxx"} seesion.post(post_url, headers = headers, data = post_data) url = "再次请求登陆的url" response = seesion.get(url, headers = headers) with open("renren3.html", "w", encoding="utf-8") as f: f.write(response.content.decode()) 原文链接:https://blog.csdn.net/williamgavin/article/details/81390014
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2018-11-17 统计