随笔 - 835  文章 - 1 评论 - 40 阅读 - 102万
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

 

 

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
复制代码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on   lshan  阅读(35940)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示