dpspider框架介绍(二)

download模块介绍

Posted by Doupeng on 2017/ 01/ 19

本文是dpspider框架介绍的第二篇,dpspider是我自己写的一个第三方模块,可能存在很多不足的地方,好的地方可以学习,不足之处还请谅解,主要是继承了requests.request方法,实现自动加载代理文件,每个代理达到一定使用次数和不能使用的时候,可以自动更换下一个代理的目的

下载安装

先点击查看github项目地址dpspider来下载安装所需要的依赖库和数据库,当然现在了解download.py并不需要数据库

参数介绍

先来看一下当我们实例化下载器的时候需要传入的参数:
  1 max: 一个代理最大的连续使用次数,默认值是10,达到这个值时自动更换下一个代理
  2 proxyFilePath: 代理文件的路径,默认是当前路径的 proxyList.txt
  3 logFile: dpspider我没有使用自带的日志模块,使用的是自己写的color模块,所以以下三个参数和printText作用相同,默认为None,即打印
  4 color: 输出的信息是否带有颜色,默认为True
  5 debug: 调试的等级,分为5个等级,0,1,2,3,4,默认为4,就是什么都会打印
     0 什么都不打印
     1 只打印以[Error]为开头的信息
     2 打印以[Error],[WARING]开头的信息
     3 打印以[Error],[WARING],[INFO]开头的信息
     4 什么都打印

类下的download方法参数:
  其实此方法继承的是 reqests 库下的 request 方法
  method: 方法 'GET','POST','PUT','DELETE','HEAD','OPTIONS'
  url: 链接地址
  proxyEnable: 新加入的参数,是否使用代理下载,默认为False
  params=None
  data=None
  json=None
  headers=None
  cookies=None
  files=None
  auth=None
  timeout=10
  allowRedirects=True
  verify=None
  stream=None
  cert=None

代码示例1

from dpspider.color import printText
from dpspider.download import Download

DL = Download(max=2,proxyFilePath='proxy.txt',logFile=None,color=True,debug=4)
url = 'http://www.tmtpost.com/new/1'
response = DL.download('GET',url)
printText(response,'cyan')

输出结果1

[Error]download.py Download \_\_init\_\_:[Errno 2] No such file or directory: 'proxy.txt'

<Response [200]>

代码示例2

from dpspider.color import printText
from dpspider.download import Download

DL = Download(max=2,proxyFilePath='proxy.txt',logFile=None,color=True,debug=4)
url = 'http://www.tmtpost.com/new/1'
for i in range(5):
    response = DL.download('GET',url,proxyEnable=True)
    printText(response,'green')

输出结果2

[INFO]use proxy:101.231.46.34:8000

<Response [200]>

[INFO]use proxy:101.231.46.34:8000

<Response [200]>

[INFO]change proxy:124.88.67.52:843

<Response [200]>

[INFO]use proxy:124.88.67.52:843

<Response [200]>

[INFO]change proxy:122.72.32.73:80

[INFO]change proxy:124.88.67.17:82

<Response [200]>

代理文件(这里注意必须是这种格式)

https,https://101.231.46.34:8000
http,http://124.88.67.52:843
http,http://122.72.32.73:80
http,http://124.88.67.17:82
http,http://124.88.67.18:80
http,http://124.88.67.20:80
http,http://120.92.3.127:80
http,http://61.238.99.156:60
  • 点击这里查看 download.py 源码

  • download.py 就介绍到这里了,有什么好的建议可以留言讨论