❶ 怎么解决使用python的requests获得网页时出现sslEOFError错误
importrequests
url="httplogin.html"
ret=requests.get(url,verify="/Test/ssl_address/qlchat.com.crt")
printret.status_code
通过 verify 指定证书,表示相信此证书(52.77.252.184.crt 是服务器端证书);也可以用 verify=False,表示不验证服务器端的证书。
https的证书获取:
通过Chrome里面-设置-证书,可以导出该域名的ssl证书,然后放到指定路径,verify=证书路径。就能直接请求https了
❷ python爬虫如何给url设置变量
url='http://xxxxxxx.simple.com/xxxxxxxx'
data={
'xxx':0,
'type':0,
'status':3,
'actName':''}
cookies={'xxxx':'xxxxxx',
'uid':'xxxxxx'}
data['xxx']=44
h=requests.get(url,params=data,cookies=cookies,timeout=3000)
#url可以通过h.url查看
requests可以通过params自动拼接
如果是urllib, 没用过, 只知道parse可以拼接参数
>>>importurllib
>>>urllib.parse.urlencode({"a":11,"b":22})
'a=11&b=22'
❸ 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 request post 方法 url是哪个
post方法中url是第一个参数。
❺ python requests包 中url是什么样子的
cookies对象基本上就是一个字典 把它转换成一个包含元组的列表,然后用合适的分隔符连接起来就好了 import requestsresp = requests.get(url)cookies = resp.cookiesprint('; '.join(['='.join(item) for item in cookies.items()]))
❻ python接口自动化测试,requests都是测试有URL的接口,没有URL的TCP接口怎么测试
比如说呢,至少要有ip/dns和port吧
❼ pythonpost报错requests.exceptions.ConnectionError(Connection aborted' BadStatusLine('Lorem Ipsum
http改成https试试
用curl代替python来测试一下,也就是多种方式post对比就容易检查出是服务器问题,还是python代码问题
❽ 全方面的掌握Requests库的使用【python爬虫入门进阶】(02)
上一篇文章简单的介绍了 爬虫相关的基础知识点,介绍了一个标准爬虫程序的三个步骤 。这篇文章就让我们接着来学习。
本文重点介绍requests库的使用以及爬虫协议。之前也写了一篇 Requests库使用的博客 ,有兴趣的小伙伴可以去看看。
前面介绍了Requests库是用来抓取网页源码,请求接口的利器,整体上是要比urllib库的request更加好用的库。官网上将其称之为唯一一个非转基因的Python HTTP库,人类可以安全享用。
Requests库有7个主要方法。
不过我们平常最常用的方法还是GET方法和POST方法。
get请求方法是爬虫中最常用到的方法,因为爬虫主要就是爬取网页的信息。最基础的使用是
这里需要通过 res.encoding='utf-8' 设置响应结果的编码格式是utf-8。不然可能会出现中文乱码
如果响应结果是二进制数据的话则需要通过 res.content 方法来提取响应结果。
设置编码的方式也可以是 res.content.decode('utf-8') 。
即
有时候get请求也需要传入参数,这里可以直接将参数拼接到URL上或者通过params参数传入一个字典。
运行结果是:
get请求只能传入简单的参数,如果参数比较复杂或者传入的参数比较多的话则GET请求就不再适用了,这时候就需要适用post请求方法了。
Post请求的请求类型有三种:
以表单的方式提交数据是POST请求的默认的请求格式,只需要将参数放在一个字典中进行传入即可。
这里将请求头的数据放在一个名为header的字典中,然后在请求时通过headers参数传入。在请求中设置了内容类型是 application/json ,编码格式是 charset=utf-8
传入的是一个json字符串,通过data参数进行传入。json字符串可以直接写也可以通过 json.mps(dict) 方法将一个字典序列化,就像下面这样。
文件上传与本节爬虫的内容无关,在此就不过多介绍了。有兴趣的小伙伴可以看看 Python中如何编写接口,以及如何请求外部接口 这篇文章。
在网络请求中,我们常常会遇到状态码是3开头的重定向问题,在Requests中是默认开启允许重定向的,即遇到重定向时,会自动继续访问。通过将allow_redirects 属性设置为False不允许重定向。
通过timeout属性可以设置超时时间,单位是秒。get方法和post方法均可设置。
通过status_code属性可以获取接口的响应码。
有时候我们使用了抓包工具,这时候由于抓包证书提供的证书并不是受信任的数字证书颁发机构颁发的,所以证书的验证会失败,所以我们就需要关闭证书验证。在请求的时候把verify参数设置为False就可以关闭证书验证了。
爬虫协议也叫做robots协议,告诉网络蜘蛛哪些页面可以爬取,哪些页面不能爬取
爬虫文件的规范是:
允许所有的机器人
本文详细介绍了Request库的使用
❾ 如何抽取所有二级网页的url python requests
看你正则表达式的精准了。
你需要尽可能分析出,1级链接和 2级链接的 独特的匹配规律,这样正则匹配出来的结果才会更准确,不会包含其他不属于1级链接和 2级链接的内容。
这样,当然效率就高了 。
❿ python,requests中获取网页源代码,与右键查看的源代码不一致,求解!!! 下面是代码,不知有何错误
requests请求网址url = 'https://www..com/s?wd=周杰伦'后,print(res.text) #打印的只是url = 'https://www..com/s?wd=周杰伦 这一个请求返回的响应体内容,
而如下图,右键查看的页面源代码是你请求的网页url加上其他页面内的js请求,图片等静态资源请求,css等最终形成的页面,所以两者不一样的