python requests post超时_python设置是否超时,http协议get,post请求(python小白学习笔记三)...

(一)设置是否超时

循环,当服务器性能不太好的时候,异常更频繁的报,

网页长时间没相应,那么网页超时,当需要自己设置超时的时间值时候,有些网站希望10s作为是否超时标准,timeout值就是10 # file=urllib.request.urlopen("http://yum.iqianyue.com",timeout=1)#设置1s作为判断标准,会出现异常 #如果设置大一些30,则没有产生异常。

import urllib.request

for i in range(1,100):

try:

"""网页长时间没相应,那么网页超时,当需要自己设置超时的时间值时候,有些网站希望10s作为是否超时标准,timeout值就是10

# file=urllib.request.urlopen("http://yum.iqianyue.com",timeout=1)#设置1s作为判断标准,会出现异常

#如果设置大一些30,则没有产生异常。"""

file = urllib.request.urlopen("http://yum.iqianyue.com", timeout=30) # 设置1s作为判断标准,会出现异常

data=file.read()

print(data)

print(len(data))

except Exception as e:

print("异常"+str(e))

(二)get请求

get请求,需要注意事项

(1)满足url格式,get字段与内容合适并且URL满足get请求,同时处理参数编码

(2)对应的URL为参数,构建Request对象

(3)通过urlopen()打开构建的request对象

(4)后续处理操作,读取网页内容,写入文件等

#http协议请求,客户端与服务端进行消息传递

#get请求

"""

在浏览器输入关键字,回车,url变化。

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu

&wd=hello&rsv_pq=f218eac10000df63&rsv_t=3615gHwrY%2FUiWRMS%2Fh3pT5KyEK755vjJ%2F2wKMOK%2BPwDS6uh0nWg%2BI32RUpU

&rqlang=cn&rsv_enter=1&rsv_sug3=7&rsv_sug1=8&rsv_sug7=101

得出,wd=hello,关键词是wd

可以简化为:https://www.baidu.com/s?wd=hello

"""

"""

get请求,需要注意事项

(1)满足url格式,get字段与内容合适并且URL满足get请求,同时处理参数编码

(2)对应的URL为参数,构建Request对象

(3)通过urlopen()打开构建的request对象

(4)后续处理操作,读取网页内容,写入文件等

"""

import urllib.request

keyworld="渴望飞的鱼"

key=urllib.request.quote(keyworld)

url="https://www.baidu.com/s?wd="+key

print(url)

req=urllib.request.Request(url)

data=urllib.request.urlopen(req).read()

fhandle=open('D:/爬虫/抓取文件/2018110205.html','wb')

fhandle.write(data)

fhandle.close()

(三)post请求

post请求,注册登陆操作时候,遇到post请求。测试网址:http://www.iqianyue.com/mypost

(1)设置好URL地址,分析页面。(右键——查看页面源码——查看表单部分)

(2)构建表单数据,使用urllib.parse.urlencode对数据进行编码处理

(3)创建Request对象,参数包括URL地址要传数据

(4)使用add_header()添加头信息,模拟浏览器进行爬取

(5)使用urllib.request.urlopen()打开相应的Request对象,完成信息传递

(6)后续处理

"""

post请求,注册登陆操作时候,遇到post请求。测试网址:http://www.iqianyue.com/mypost

(1)设置好URL地址,分析页面。(右键——查看页面源码——查看表单部分)

(2)构建表单数据,使用urllib.parse.urlencode对数据进行编码处理

(3)创建Request对象,参数包括URL地址要传数据

(4)使用add_header()添加头信息,模拟浏览器进行爬取

(5)使用urllib.request.urlopen()打开相应的Request对象,完成信息传递

(6)后续处理

"""

import urllib.request

import urllib

import parse

url="http://www.iqianyue.com/mypost"

#需要对数据进行编码处理

postdata = {

"name":"你是猪",

"pass":"嘻嘻嘻"

}

postdata = urllib.parse.urlencode(postdata).encode('utf-8')

req=urllib.request.Request(url,postdata)

req.add_header("User-Agent"," Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36")

data=urllib.request.urlopen(req).read()

fhandle=open('D:/爬虫/抓取文件/2018110208.html',"wb")

fhandle.write(data)

fhandle.close()

抓取网页代码:

Post Test Page

name:

passwd:

you input name is:你是猪

you input passwd is:嘻嘻嘻

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值