码迷,mamicode.com
首页 > 其他好文 > 详细

修改请求头 -> 设置连接超时 -> 延迟提交数据

时间:2020-04-07 16:58:26      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:utf-8   open()   chrome   code   超时   imp   htm   detail   就会   

 一.修改请求头:

 应对反爬虫措施可以修改请求头来模拟正常的访问,Request 中有个 headers 参数,可通过 如下两种方法进行设置:

(1)把请求头都塞到字典里,在实例化 Request对象的时候传入;

(2)通过 Request对象的 add_header()方法一个个添加。 


 1 # -*- coding: utf-8 -*-
 2 """
 3 Created on Tue Apr  7 15:55:53 2020
 4 
 5 @author: ZKYAAA
 6 """
 7 import urllib.request
 8 # 修改头信息
 9 novel_url = "http://www.santostang.com/"
10 headers = {User-Agent: Mozilla/5.0 (X11; Linux x86_64) 
11                          AppleWebKit/537.36 (KHTML, like Gecko)
12                           Chrome/63.0.3239.84 Safari/537.36,
13            Referer: http://www.baidu.com,
14            Connection: keep-alive}
15 novel_req = urllib.request.Request(novel_url, headers=headers)
16 novel_resp = urllib.request.urlopen(novel_req)
17 print(novel_resp.read().decode(utf-8))

  二.设置连接超时 

(1)参考:https://blog.csdn.net/weixin_41987744/article/details/99637199

(2)urlopen()函数中有一个可选参数 timeout,单位为秒,作用是如果请求超出了这个时间 还没有得到响应,就会抛出异常。如果不设置,会使用全局默认时间;

         timeout参数未设置时可能会导致hangg问题,设置timeout=60(单位:秒),在不断的”断网-联网“冲击下,hang 不出现问题

1 urllib.request.urlopen(novel_req, timeout=20) 

 

修改请求头 -> 设置连接超时 -> 延迟提交数据

标签:utf-8   open()   chrome   code   超时   imp   htm   detail   就会   

原文地址:https://www.cnblogs.com/ZKYAAA/p/12654265.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!