‘壹’ 请教python 采 集 requests post请求一个第三方接口中文乱码的问题
你需要写这行代码,有可能是你编码格式设置错了;
在请求的下面加这行代码
rsp = requests.get(url,headers = headers)
rsp.encoding = rsp.apparent_encoding
它会自动匹配文档中的编码格式,如果还不行你再追问。
‘贰’ 如何在MAC系统下的python中导入第三方库,如lxml和requests
requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的:
python的标准库urllib2提供了大部分需要的HTTP功能,但是API太逆天了,一个简单的功能就需要一大堆代码。
‘叁’ centos python 怎么安装requests
直接在centos终端命令行中:
pipinstallrequests
然后就可以直接在python环境中使用:
importrequests
‘肆’ python2 能使用requests吗
由于公司要用到模拟用户登录,于是用学校图书馆读者登录来进行练习。
工具是python2 + requests第三方库+火狐浏览器的firebug进行http抓包
目标 用python成功登录学校图书馆
接下来几篇会利用urllib和urllib2标准库进行登录
以下为具体步骤:
1 打开学校图书馆网址,以下为登录界面
综合以上分析,利用requests库进行模拟用户登录。这里的post参数采用了之前图片的源码形式,使得参数顺序匹配
import requests
url = "http://210.32.205.60/login.aspx"
# 学校图书馆登录url
header = {"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Encoding":"gzip, deflate",
"Accept-Language":"zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
"Connection":"keep-alive",
"Content-Type":"application/x-www-form-urlencoded",
"Host":"210.32.205.60",
"Referer": "http://210.32.205.60/login.aspx",
"Upgrade-Insecure-Requests":"1",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; rv:54.0) Gecko/20100101 Firefox/54.0"
}
body = b'__VIEWSTATE=%uMtIIHXEj%&__VIEWSTATEGENERATOR=C2EE9ABB&__EVENTVALIDATION=%2FwEdAAbAeS%2BByzNg%%2FzVFQdp1z%2BnYWZ%%2BIuKmLNV%%3D%3D&DropDownList1=0&TextBox1=读者号&TextBox2=密码&ImageButton1.x=44&ImageButton1.y=12'r = requests.post(url, data=body, headers=header)
print r.text
以上为一次提交,没有进行重定向截取。
如果想用reque库截取重定向,在这个图书馆登录中则需要进行两次操作,这里相当于只做了post请求,头部,post参数都不变,只不过在requests.post()内设置了参数
r = requests.post(url, data=body, headers=header, allow_redirects=False)
# 设置 allow_redirects=False 使得禁止重定向
aspid = r.headers["Set-Cookie"] # 返回页面的头部的cookie
print r.status_code # 输出302
如果再想登陆图书馆页面,那么需要将cookie重新加入新的url上,进行get请求的提交,此时url为/Default.aspx.
url ="http://210.32.205.60/Default.aspx"
header = {
"Accept": "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, */*",
"Referer": "http://210.32.205.60/login.aspx",
"Accept-Language": "zh-CN",
"User-Agent": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)",
"Accept-Encoding": "gzip, deflate",
"Host": "210.32.205.60",
"Connection": "Keep-Alive",
"Pragma": "no-cache",
"Cookie": aspid
}
r = requests.get(url=url,headers=header)
print r.status_code
print r.text
接下来的几篇是利用python2的urllib2和urllib进行相同的模拟用户登录。
ps 由于urllib2处理重定向的时候不会将cookie带上,会导致页面不能正确爬取,所以要处理重定向。解决urllib重定向文章在此,分别介绍了urllib2自动处理重定向(带上cookie),和urllib2阻止重定向,返回cookie。
利用urllib2进行自动处理重定向,模拟浏览器提交post一次,就可以登录图书馆的文章在这。
利用urllib2处理重定向,使得重定向截断,获取cookie,根据cookie用代码实现重定向,登录图书馆的文章在此。
‘伍’ python 安装requests需要哪些依赖
不需要依赖
只要你有pip
通过pip安装
pip install requests
或者使用IDE,比如pycharm 来下载requests这个
‘陆’ 为什么我python导入了requests库后运行报错
E:\python\requests
这个文件夹名称最好不要和库名称一样,改一下再运行试试。
‘柒’ python pip安装requests时报错,怎么解决
分析原因:
总以为没有导入requests库,一直在网上搜索各种的导入库方法(下载第三方的requests库,用各种命令工具安装),还是报错
后来找到一个命令pip install requests,说明安装python3的时候,已经自动勾选安装了requests库了
进入Python的安装目录查看,pip等均已自带了(太浪费精力了)
后来无意间看到有人说,如果各种都配置好了,还是报错,有可能你的python程序目录中某个文件名字与库名字一样,
所以试着改了下文件名,把之前与库名相同的文件删除,再次允许,成功了
代码:
[python] view plain print?
#!/usr/bin/env python
#coding:utf-8
import requests
url = 'http://www..com'
data = requests.get(url)
print(data)
print(data.text) #这里.text等同于read()
code = data.encoding
print(code)
page_status = data.status_code
print(page_status)
‘捌’ python怎么安装import requests
安装的时候直接:pip install requests,或者 pip3 install requests.
使用的时候:import requests
‘玖’ python spder怎么加requests库
(1) 先安装requests库,pip install requests
(2)在代码中导入模块 ,import requests
‘拾’ 在vs上怎么用python将一个程序引入另一个程序
python中调用另一个程序有多种不同方式,一种是调用本文件下的某个函数来实现调用,另一种是调用模块或包文件下的函数实现调用,还有一种是通过类方法的方式调用类定义的某段程序。
自身函数的调用时相当方便的,在定义好了函数以后直接按定义的格式调用即可,出现的错误为参数数量不匹配。通过包或模块调用相对自身函数调用比较复杂,需要提前导入包或模块,常用的方法为import或者fromimport,导入成功的前提是对应的包或模块在python路径之下,可以通过sys.path(sys为系统内置模块可以直接使用importsys导入)来查看python路径。以导入第三方包文件requests为例。通过类方法的调用需要在调用之前,实例化一个类对象,通过这个类对象来调用类方法,注意第三个方法为私有方法,不允许类外部访问。