python request模块通过模拟用户访问web网站,实际运用到Html的post,get的方法实现网站互动。这个需要了解Html的post,get的基础知识。

比较常见的就是用户登录,基本上现在的网站都是要用户登录了才能继续进一步访问。

post方式

这个方法就通过post个人的帐号密码到网站,实现登录。

以豆瓣登录为例:

首先要找到post网址

打开网页->按F12(找到网络(火狐为例))->随意输入帐号密码->点击登录

get python 登陆 python怎么登录_python


其次就是找到参数

get python 登陆 python怎么登录_html_02


最后就是代码部分:

import requests
url='https://accounts.douban.com/login'
data={'source':"index_nav",'form_email':'啊啊','form_password':"dafadf",'login':"登录"}
r=request.post(url,data=data)
print (r.text)

值得注意的是,data部分参数是必需的,也有是可省略的,具体要看分析。
这个就是简单post方式,不过这代码貌似不能使用,因为这个错误过多会有验证码部分。

session+cookies

对于验证码部分,可以用session+cookies方式实现登录,因为这个网站是会保持登录状态的,就是说,这次登录下,退出网页重新进入,个人帐号是还在的,不用再重新登录。

直接看代码

get python 登陆 python怎么登录_get python 登陆_03


其中c是个人登录后cookies,这个可以用浏览器开发者工具查看即可。这里不详细说了。

request.get()获得的是登录后的网址。

r.text获得的是登录后的网址内容。

可以根据r.text和登录后的网址对比,检测是否登录成功。Get带参数

通常get是获取网站的内容,一切要有url才会获取。比如:

get python 登陆 python怎么登录_request_04


如果我需要查其他关键字的话,那么直接修改明白就可以了

key="清楚"
URL=('https://zhidao.baidu.com/search?ct=17&pn=0&tn=ikaslist&rn=10&word=%s&fr=wwwt' %key)
request.get(URL)

这个可以修改参数,实现动态查询。

爬取网站图片

def dowloadPic(imageUrl,filePath):
    r = requests.get(imageUrl)
    with open(filePath, "wb") as code:
        code.write(r.content)

imageUrl:图片网络路径
filePath:图片保存本地路径

以上post,get(带参数),session+cookies是最为常用的用法。
更多用法可以参考官方文档:
http://docs.python-requests.org/zh_CN/latest/index.html


欢迎加入学习交流QQ群:657341423