基于python第三方requests 模块的HTTP请求类

使用requests模块构造的下载器,首先安装第三方库requests

pip install requests

 1 class StrongDownload(object):
 2
 3     def __init__(self):
 4         #拿到代理iplist
 5         self.iplist = [‘自己想办法搞‘] #
 6         self.UserAgent = [‘自己想办法搞‘]
 7
 8     def get(self,url,timeout,proxy=False,num_retries=3):
 9         ‘‘‘url timeout,proxy,num_retries
10                 返回response对象
11         ‘‘‘
12         #伪造UserAgent
13         UA = self.UserAgent[random.randint(0,len(self.UserAgent)-1)]
14         #UA = random.choice(self.UserAgent)
15         headers = {‘User-Agent‘:UA}
16         if proxy == False:
17             try:
18                 return requests.get(url,timeout=timeout,headers=headers)
19             except Exception as e:
20                 print e
21                 #判断retries
22                 if num_retries>0:
23                     print u‘爬取网页错误,10s后继续尝试.....‘
24                     time.sleep(1)
25                     return self.get(url, timeout, False, num_retries-1)
26                 else:#重试次数用尽,使用代理
27                     time.sleep(1)
28                     IP = str(random.choice(self.iplist))
29                     proxy = {‘http‘,IP}
30                     return self.get(url, timeout, True,5)
31
32         else:#使用代理
33
34             try:
35                 print ‘开始使用代理‘
36                 IP = random.choice(self.iplist)
37                 proxy = {‘http‘:IP}
38                 print proxy[‘http‘]
39                 return requests.get(url,headers=headers, timeout=timeout, proxies=proxy)
40             except:
41                 if num_retries>0:
42                     print u‘代理爬取网页错误,10s后继续尝试.....‘
43                     time.sleep(1)
44                     return self.get(url, timeout,True, num_retries-1)
45                 else:#代理也不行
46                     time.sleep(30)
47                     print u‘代理也没用...‘
48                     return None
49                      
时间: 2024-11-05 22:38:26

基于python第三方requests 模块的HTTP请求类的相关文章

Python接口测试-使用requests模块发送post请求

本篇主要记录下使用python的requests模块发送post请求的实现代码. #coding=utf-8 import unittest import requests class PostTest(unittest.TestCase): def setUp(self): host = 'https://httpbin.org/' endpoint = 'post' self.url = ''.join([host, endpoint]) def testPost(self): params

基于Python的urllib2模块的多线程网络爬虫程序

1 m Queue import Queue 2 from gzip import GzipFile 3 from StringIO import StringIO 4 import time 5 import socket 6 class ContentEncodingProcessor(urllib2.BaseHandler): 7 """A handler to add gzip capabilities to urllib2 requests ""

python之requests模块-cookie

cookie并不陌生,与session一样,能够让http请求前后保持状态.与session不同之处,在于cookie数据仅保存于客户端.requests也提供了相应到方法去处理cookie. 在python之requests模块-session中,我们知道了requests中的session对象能够在请求之间保持cookie,它极大地方便了我们去使用cookie.当我们想设置方法级别中的请求时,可以如下面示例一样操作. import requests s = requests.session(

python之requests模块-hook

requests提供了hook机制,让我们能够在请求得到响应之后去做一些自定义的操作,比如打印某些信息.修改响应内容等.具体用法见下面的例子: import requests # 钩子函数1 def print_url(r, *args, **kwargs): print("raw_url "+r.url) # 钩子函数2 def change_url(r, *args, **kwargs): r.url = 'http://change.url' print("change

scapy编写简单的ARP扫描脚本 本课程基于 Python 的 scapy 模块编写,适合有 Python 基础的同学学习,最终完成一个简单的 ARP 扫描脚本。

scapy编写简单的ARP扫描脚本 本课程基于 Python 的 scapy 模块编写,适合有 Python 基础的同学学习,最终完成一个简单的 ARP 扫描脚本.

python 爬虫 基于requests模块的get请求

需求:爬取搜狗首页的页面数据 import requests # 1.指定url url = 'https://www.sogou.com/' # 2.发起get请求:get方法会返回请求成功的响应对象 response = requests.get(url=url) # 3.获取响应中的数据:text属性作用是可以获取响应对象中字符串形式的页面数据 page_data = response.text # 4.持久化数据 with open("sougou.html","w&

python之requests模块

Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. 发送GET请求 import urllib.request f = urllib.request.urlopen('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508')

python的requests模块

使用python进行接口测试得时候可以使用requests模块,是基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库 安装requests是模块 pip install requests requests模块的使用 requests支持http的请求类型,如get,post,delete,put,head等 如: r=requests.get("www.baidu.com") r=requests.post("www.baidu.com&qu

python (requests模块使用)

requests模块是python的一个第三方模块,它是基于python自带的urllib模块封装的,用来发送http请求和获取返回的结果,操作很简单.需要自己安装  pip install requests import requests req = requests.get('http://www.baidu.cn',data={'username':'xxx'},cookies={'k':'v'}, headers={'User-Agent':'Chrome'},verify=False,