精华内容
下载资源
问答
  • Linux 下载文件命令

    千次阅读 2016-07-28 13:22:08
    Linux 下载文件命令

    wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径

    例如: # wget http://www.linuxsense.org/xxxx/xxx.tar.gz

    简单说一下-c参数, 这个也非常常见, 可以断点续传, 如果不小心终止了, 可以继续使用命令接着下载

    例如: # wget -c http://www.linuxsense.org/xxxx/xxx.tar.gz

    下面详细阐述wget的用法:

    wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.

    所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。

    wget可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作”递归下载”。在递归下载的 时候,wget遵循Robot Exclusion标准(/robots.txt). wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。

    wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完 毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

    wget的常见用法

    wget的使用格式

    Usage: wget [OPTION]… [URL]…

    * 用wget做站点镜像:

    wget -r -p -np -k http://dsec.pku.edu.cn/~usr_name/

    # 或者

    wget -m http://www.tldp.org/LDP/abs/html/

    * 在不稳定的网络上下载一个部分下载的文件,以及在空闲时段下载

    wget -t 0 -w 31 -c http://dsec.pku.edu.cn/BBC.avi -o down.log &

    # 或者从filelist读入要下载的文件列表

    wget -t 0 -w 31 -c -B ftp://dsec.pku.edu.cn/linuxsoft -i filelist.txt -o down.log &

    上面的代码还可以用来在网络比较空闲的时段进行下载。我的用法是:在mozilla中将不方便当时下载的URL链接拷贝到内存中然后粘贴到文件filelist.txt中,在晚上要出去系统前执行上面代码的第二条。

    * 使用代理下载

    wget -Y on -p -k https://sourceforge.net/projects/wvware/

    代理可以在环境变量或wgetrc文件中设定

    # 在环境变量中设定代理

    export PROXY=http://211.90.168.94:8080/

    # 在~/.wgetrc中设定代理

    http_proxy = http://proxy.yoyodyne.com:18023/

    ftp_proxy = http://proxy.yoyodyne.com:18023/

    wget各种选项分类列表

    * 启动

    -V, –version           显示wget的版本后退出

    -h, –help              打印语法帮助

    -b, –background        启动后转入后台执行

    -e, –execute=COMMAND   执行`.wgetrc’格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc

    * 记录和输入文件

    -o, –output-file=FILE     把记录写到FILE文件中

    -a, –append-output=FILE   把记录追加到FILE文件中

    -d, –debug                打印调试输出

    -q, –quiet                安静模式(没有输出)

    http://www.itqun.net/content-detail/511328.html
    http://www.guanwei.org/post/LINUXnotes/05/Linux-Wget-download-method.html

    LINUX命令行下以HTTP方式下载文件的方法
    Post by mrchen, 2010-5-23, Views:101
    原创文章如转载,请注明:转载自冠威博客 [ http://www.guanwei.org/ ]
    本文链接地址:http://www.guanwei.org/post/LINUXnotes/05/Linux-Wget-download-method.html

    顺便提一下。如果下载ftp服务器上的文件,可以用ftp命令。然后用get命令下载文件

    对于喜欢命令行操作及追求高效率、高速度下载的朋友,推荐使用命令行下载工具。命令行工具不但使用方便,而且大多具有很高的下载速度及下载效率,尤其适合于大批量下载文件。下面就为大家详细介绍一下这些工具。

    Wget

    Wget是一个十分常用命令行下载工具,多数Linux发行版本都默认包含这个工具。如果没有安装可在http://www.gnu.org/software/wget/wget.html下载最新版本,并使用如下命令编译安装:

        #tar zxvf wget-1.9.1.tar.gz
        #cd wget-1.9.1 #./configure
        #make #make install

    它的用法很简单,Wget使用格式如下: #wget [选项] [下载地址]

    1.Wget常用参数

    ◆-b:后台下载,Wget默认的是把文件下载到当前目录。

    ◆-O:将文件下载到指定的目录中。

    ◆-P:保存文件之前先创建指定名称的目录。

    ◆-t:尝试连接次数,当Wget无法与服务器建立连接时,尝试连接多少次。

    ◆-c:断点续传,如果下载中断,那么连接恢复时会从上次断点开始下载。

    ◆-r:使用递归下载

    除了上述常用功能,Wget还支持HTTP和FTP代理功能,编辑其配置文件“/etc/wgetrc”即可。具体方法是使用VI编辑器打开上述文 件,将 “http_proxy”和“ftp_proxoy”前的#去掉,然后在这两项后输入相应的代理服务器的地址,保存退出即可。此外,Wget还可下载整个 网站,如下载整个Man手册中心。只需输入如下命令即可: #wget -r -p -np -k http://man.chinaunix.net

    其中-r参数是指使用递归下载,-p是指下载所有显示完整网页所以需要的文件,如图片等,-np是指不搜索上层目录,-k则是指将绝对链接转换为相对链接。

    Prozilla

    Prozilla也是一个十分流行的命令行下载工具,支持多线程下载和断点续传功能。可到http://prozilla.genesys.ro/下载最新的1.3.7.4安装包,下载安装包后使用如下命令进行安装:

        #tar zxvf prozilla-1.3.7.4.tar.gz
        #cd prozilla-1.3.7.4
        #./configure #make
        #make install

    Prozilla命令格式如下: #proz [参数] [下载地址] 常用的选项有:

    ◆-k=n :设置n个线程下载。不加此参数指定线程数,Prozilla默认为4线程下载。

    ◆-P, --directory-prefix=DIR:指定将下载的文件保存在DIR/目录。

    ◆-r, --resume:继续下载未完成的文件。如果要指定线程数下载可用如下命令: #proz -k=5 http://64.12.204.21/pub/mozilla.org/firefox/releases/1.0/linux-i686/zh-CN/firefox-1.0.installer.tar.gz 这样便以5线程进行文件的下载,并将文件保存到当前目录。和Wget一样,Prozilla也提供了续传功能,下载中断后,重新输入上述命令,就会出现提 示续传,按R键就可继续下载了。

     

    MyGet

    MyGet目标设计成一个可扩展的,拥有丰富界面的多线程下载工具,它支持HTTP、FTP、HTTPS、MMS、RTSP等协议。在 http://myget.sourceforge.net/release/myget-0.1.0.tar.bz2下载其最新版本0.1.0,下载后 使用如下命令安装:

        #tar jxvf myget-0.1.0.tar.bz2
        #cd myget-0.1.0 #./configure
        #make
        #make install

    MyGet命令格式如下: #mytget [选项] [下载地址] 常用的选项:

    ◆-d [目录]:指定下载到的文件在本地存放的位置,默认当前目录。

    ◆-f [文件]:指定下载文件名称。

    ◆-h:帮助选项。

    ◆-n [线程数]:下载线程数量,默认为4个。

    ◆-x [代理服务器地址]:设置代理服务器地址,如“-x http://user:password@host:port”。 MyGet常用的形式如下: #mytget -d /root/ -n 10 http://lumaqq.linuxsir.org/download/patch/lumaqq_2004t_patch_2005.07.21.00.00.zip

    Linuxdown

    Linuxdown是一个命令行多线程下载工具,最多可支持30线程的下载。在https://gro.clinux.org/frs /download.php/1015/linuxdown-1.0.0.tar.gz下载最新的1.1.0版本。然后使用如下命令进行编译安装:

        #tar zxvf linuxdown-1.1.0.tar.gz
        #cd dandelion/
        #make
        #make install

    Linuxdown格式为: #linuxdown [下载地址] [选项] [线程数] 需要注意的是下载地址和选项都需要西文引号括起来,线程数不可超过30个。一个典型的下载如下: #linuxdown "http://lumaqq.linuxsir.org/download/patch/lumaqq_2004t_patch_2005.07.21.00.00.zip" 30

    Curl

    Curl也是Linux下不错的命令行下载工具,小巧、高速,唯一的缺点是不支持多线程下载。在http://curl.haxx.se/download/curl-7.14.0.tar.gz下载最新版本。下载后便可使用如下命令编译安装:

        #tar zxvf curl-7.14.0.tar.gz
        #cd curl-7.14.0/
        #./configure
        #make
        #make test
        #make install

    Curl使用格式如下: #curl [选项][下载地址] Curl典型下载如下: #curl -O http://10.1.27.10/~kennycx/tools/lumaqq_2004-linux_gtk2_x86_with_jre.tar.gz 使用Curl下载一个文件并保存到当前目录。此外,Curl虽然不支持多线程下载,但它可同时下载多个文件或下载文件的某一部分,可使用如下命令实现: #curl -r 0-199 http://www.netscape.com/ 获得文件的前200 bytes。对于常用的代理下载Curl也可轻松实现,具体操作如下: #curl -x 10.1.27.10:1022 ftp://ftp.funet.fi/README 使用代理地址为10.1.27.10端口为1022的代理服务器下载一个文件。 #curl -U user:passwd -x 10.1.27.10:1022 ftp://ftp.funet.fi/README 如果代理服务器需要特别的验证,则需要在user:passwd处输入合法的帐号和密码。

    Axel

    Axel是命令行下的多线程下载工具,支持断点续传,速度通常情况下是Wget的几倍。可在http://www.linuxfans.org /nuke/modules.php?name=Site_Downloads&op=mydown&did=1697下载。下载后使用 如下命令编译安装:

        #tar zxvf axel-1.0a.tar.gz
        #cd axel-1.0a/
        #./configure
        #make
        #make install

    基本的用法如下: #axel [选项] [下载目录] [下载地址] 一个典型下载如下: #alex -n 10 -o /home/kennycx/ http://10.1.27.10/~kennycx/tools/lumaqq_2004-linux_gtk2_x86_with_jre.tar.gz 用10线程将指定路径的文件下载到/home/kennycx/这个目录下。

    本文详细介绍了Linux中常用的下载工具,这些下载工具功能上各有千秋,使用上都比较简单,所以无论是初学者还是Linux高手总有一款适合你。

     

    Linux下用命令行也可以下载HTTP网站的文件。顺便提一下,如果是ftp网站可以用ftp命令然后get XXX。

    展开全文
  • 这个基于Java的Matlab文件下载器支持代理代理测试,https,http转发
  • 『全能地图下载器』是一款地图、高程下载类GIS软件,支持将下载的地图、高程等数据进行多种专业格式转换,或发布为地图服务,旨在辅助用户提高工作效率,轻松构建自己的地图应用。可应用于学术科研、工程、规划、...

    『全能地图下载器』是一款地图、高程下载类GIS软件,支持将下载的地图、高程等数据进行多种专业格式转换,或发布为地图服务,旨在辅助用户提高工作效率,轻松构建自己的地图应用。可应用于学术科研、工程、规划、设计等工作,在测绘、地质、交通、电力、水利、农业、林业和旅游等领域应用广泛。


    主要功能:
      1. 支持几十种地图下载,包括不仅限于谷歌、百度、高德、微软、诺基亚、天地图、腾讯、ArcGIS Online、雅虎的街道图、卫星图、地形图。
      2. 提供海量地图下载,下载图片数量无任何限制,模拟浏览器请求方式进行地图下载,暂未发现被封IP情况。
      3. 提供了全国主要城市边界坐标,内置了全国共有34个省级行政区和3000多个地级行政区划单位边界坐标并可以导出为KML、文本等格式。
      4. 下载方式灵活多样,操作简单方便,只要拖动几下鼠标,就可按圆形,矩形,不规则多边形和行政区范围下载。
      5. 可无缝拼接单张大图,可拼接成BMP、PNG、JPG大图,最大支4G,GeoTIFF可拼接为无限制大图。
      6. 可生成精确坐标文件,可将所下载的图片精确地叠加到其它软件中,比如Global Mapper、ArcMap等。
      7. 可自动升级地图版本,和官方谷歌地图保持同步,即使不升级软件也能下载到最新的谷歌地图。
      8. 支持将下载的地图转换为ArcGIS切片缓存格式,可在ArcMap中直接打开,也可用于ArcGIS Server发布为底图服务。
      9. 支持将下载的地图转换为MBTiles格式离线地图包。
      10.支持将下载的地图转换为OruxMaps离线地图包,供户外安卓地图软件OruxMaps离线调用,支持导出无偏移卫星地图。
      11.支持将下载的地图转换为SQLiteDB格式离线地图包,供RMaps、BigPlanet等手机地图离线浏览。
      12. 支持路线和高程提取。
      13. 支持任务的断点续传,智能下载。
      14. 支持HTTP代理下载。
      15. 提供测量距离、测量面积、火星坐标和地球坐标互转等实用功。
      16. 支持GPS导航功能,支持NMEA-0183协议,是专门为广大户外驴友量身定制贴心功能。
      17. 提供绿色版和安装版,均无需安装JAVA虚拟机或.NET Framework,小巧轻便,运行快速稳定。


    ----------
    系统支持
    ----------
    『全能地图下载器』全面支持各个版本Windows32/64位系统,这其中包括Windows9X、WindowsME、WindowsNT、Windows2000、WindowsXP、Win7、Win8。

     

    资源下载地址:

    http://download.csdn.net/download/gis0911178/10127184

    资源没法设置0分下载,微信关注  奔跑的GISer  回复全能电子地图 ,获取资源

    展开全文
  • 下载器中间件简介 自定义下载器中间件 RandomUserAgentMiddleware RandomProxyMiddleware 激活下载器中间件 内置下载器中间件 CookiesMiddleware DefaultHeadersMiddleware DownloadTimeoutMiddleware ...

    目录

    下载器中间件简介

    自定义下载器中间件

    RandomUserAgentMiddleware

    RandomProxyMiddleware

    激活下载器中间件

    内置下载器中间件

    CookiesMiddleware

    DefaultHeadersMiddleware

    DownloadTimeoutMiddleware

    HttpProxyMiddleware

    RedirectMiddleware

    RetryMiddleware

    RobotsTxtMiddleware

    UserAgentMiddleware


    下载器中间件简介

    下载器中间件(Downloader Middleware)是介于Scrapy的request/response处理的钩子框架。 是用于全局修改Scrapy request和response的一个轻量、底层的系统。

    自定义下载器中间件

    每个下载器中间件是一个定义了以下一个或多个方法的Python类:

        def process_request(self, request, spider):
            # 每一个Requests 从引擎传递给下载器之前,该方法被调用
    
            # 必须返回下述值之一:
            # - None: Scrapy将继续处理该request,由其他的下载器中间件(按照顺序编号由小到大)或者下载器处理;
            # - Response: 其将返回该response ;
            #             其他下载器中间件的 process_request() 或 process_exception() 方法 以及 下载器的下载函数将不会被调用;
            #             已经激活的下载器中间件将按照顺序编号由大到小依次调用 process_response() 方法对该response进行处理;
            # - Request: Scrapy 将停止调用 process_request() 方法并重新调度返回的request
            # - raise IgnoreRequest: 声明忽略该request;
            #                        已经激活的下载器中间件将按照顺序编号由大到小依次调用 process_exception() 方法对该异常进行处理;
            #                        如果没有任何一个方法处理该异常, 则request的errback(Request.errback)方法会被调用;
            #                        如果没有代码处理抛出的异常, 则该异常被忽略且不记录(不同于其他异常那样)。
            return None
    
        def process_response(self, request, response, spider):
            # 每一个Responses 从下载器返回给引擎之前,该方法被调用
    
            # 必须返回下述值之一:
            # - Response: 可以与传入的response相同,也可以是全新的对象 ;
            #             已经激活的比当前中间件顺序编号小的下载器中间件将按照顺序编号由大到小依次调用 process_response() 方法对该response进行处理;
            # - Request: Scrapy 将停止调用 process_request() 方法并重新调度返回的request
            # - raise IgnoreRequest: 声明忽略该request;
            #                        则调用request的errback(Request.errback)。 如果没有代码处理抛出的异常,则该异常被忽略且不记录(不同于其他异常那样);
            return response
    
        def process_exception(self, request, exception, spider):
            # 当下载器或者下载器中间件执行 process_request() 方法抛出异常时,该方法被调用
    
            # 必须返回下述值之一:
            # - None: Scrapy将继续处理该异常;
            #         已经激活的下载器中间件将按照顺序编号由大到小依次调用 process_exception() 方法对该异常进行处理;
            #         直到所有下载器中间件都被调用完毕,则调用默认的异常处理;
            # - Response:  已经激活的下载器中间件将按照顺序编号由大到小依次调用 process_response() 方法对该response进行处理;
            # - Request: Scrapy 将停止异常处理并重新调度返回的request
            pass

    RandomUserAgentMiddleware

     RandomUserAgentMiddleware能够从我们预先定义好的User-Agent列表中随机选择一个添加到Request的请求头中。

    import random
    
    # 随机选择 User-Agent 下载器中间件
    class RandomUserAgentMiddleware(object):
    
        def process_request(self, request, spider):
            # 从 settings 的 USER_AGENTS 列表中随机选择一个作为 User-Agent
            user_agent = random.choice(spider.settings['USER_AGENTS'])
            request.headers['User-Agent'] = user_agent
            return None
    
        def process_response(self, request, response, spider):
            # 验证 User-Agent 设置是否生效
            print(request.headers['User-Agent'])
            return response

     settings.py 中配置的 USER_AGENTS 列表内容格式如下:

    USER_AGENTS = [
        "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
        "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2"
    ]

    RandomProxyMiddleware

    在网络爬虫过程中,经常会碰到 IP地址被限制访问的情况,我们通常都会通过设置代理来解决。

    RandomProxyMiddleware就是这样一个下载器中间件,能够从我们预先定义好的IP代理列表中随机选择一个来发送请求。

    import random
    
    # 随机选择 IP 代理下载器中间件
    class RandomProxyMiddleware(object):
    
        # 从 settings 的 PROXIES 列表中随机选择一个作为代理
        def process_request(self, request, spider):
            proxy = random.choice(spider.settings['PROXIES'])
            request.meta['proxy'] = proxy
            return None

     settings.py 中配置的 PROXIES 列表内容格式如下:

    PROXIES = [
        "https://171.13.92.212:9797",
        "https://164.163.234.210:8080",
        "https://143.202.73.219:8080",
        "https://103.75.166.15:8080"
    ]

    激活下载器中间件

    要激活下载器中间件,需要将其加入到 DOWNLOADER_MIDDLEWARES 设置中。 该设置是一个字典(dict),键为中间件类的路径,值为其中间件的顺序(order)。

    激活 RandomUserAgentMiddleware 和 RandomProxyMiddleware 两个下载器中间件的配置如下:

    # Enable or disable downloader middlewares
    # See https://doc.scrapy.org/en/latest/topics/downloader-middleware.html
    DOWNLOADER_MIDDLEWARES = {
        'baidu_tieba.middlewares.RandomUserAgentMiddleware': 541,
        'baidu_tieba.middlewares.RandomProxyMiddleware': 542
    }

    DOWNLOADER_MIDDLEWARES 设置会与Scrapy定义的 DOWNLOADER_MIDDLEWARES_BASE 设置合并(但不是覆盖), 而后根据顺序(order)进行排序,最后得到启用中间件的有序列表: 第一个中间件是最靠近引擎的,最后一个中间件是最靠近下载器的。

    关于如何分配中间件的顺序请查看 DOWNLOADER_MIDDLEWARES_BASE 设置,而后为你的中间件选择一个合适的顺序(order)值。 由于每个中间件执行不同的动作,你的中间件可能会依赖于之前(或者之后)执行的中间件,因此顺序是很重要的。

    以下是 DOWNLOADER_MIDDLEWARES_BASE 的默认配置:

    DOWNLOADER_MIDDLEWARES_BASE = {
        'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100,
        'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware': 300,
        'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware': 350,
        'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 400,
        'scrapy.downloadermiddlewares.retry.RetryMiddleware': 500,
        'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware': 550,
        'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware': 580,
        'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 590,
        'scrapy.downloadermiddlewares.redirect.RedirectMiddleware': 600,
        'scrapy.downloadermiddlewares.cookies.CookiesMiddleware': 700,
        'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 750,
        'scrapy.downloadermiddlewares.chunked.ChunkedTransferMiddleware': 830,
        'scrapy.downloadermiddlewares.stats.DownloaderStats': 850,
        'scrapy.downloadermiddlewares.httpcache.HttpCacheMiddleware': 900,
    }

    如果你想禁止内置的(在 DOWNLOADER_MIDDLEWARES_BASE 中设置并默认启用的)中间件, 你可以在项目的 DOWNLOADER_MIDDLEWARES 设置中定义该中间件,并将其值赋为 None 。 例如,关闭内置的 UserAgentMiddleware 中间件:

    DOWNLOADER_MIDDLEWARES = {
        'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None
    }

    最后,请注意,有些中间件需要通过特定的设置来启用。更多内容请查看相关中间件文档

    内置下载器中间件

    接下来将对几个常用的内置下载器中间件进行简单介绍。 

    CookiesMiddleware

    class scrapy.downloadermiddlewares.cookies.CookiesMiddleware

     内置的 CookiesMiddleware 下载器中间件使得爬取需要cookie(例如使用session)的网站成为了可能。 其追踪了web server发送的cookie,并在之后的request中发送回去, 就如浏览器所做的那样。

    以下设置可以用来配置CookiesMiddleware中间件:

    COOKIES_ENABLED = True # 是否启用 CookiesMiddleware ,默认 True
    COOKIES_DEBUG = False # 是否启用 Cookies 调试,默认 False

     如果启用 Cookies 调试,Scrapy将记录所有在request(Cookie 请求头)发送的cookies及response接收到的cookies(Set-Cookie 接收头)。

    下边是启用 COOKIES_DEBUG 的记录的样例:

    2011-04-06 14:35:10-0300 [scrapy] INFO: Spider opened
    2011-04-06 14:35:10-0300 [scrapy] DEBUG: Sending cookies to: <GET http://www.diningcity.com/netherlands/index.html>
            Cookie: clientlanguage_nl=en_EN
    2011-04-06 14:35:14-0300 [scrapy] DEBUG: Received cookies from: <200 http://www.diningcity.com/netherlands/index.html>
            Set-Cookie: JSESSIONID=B~FA4DC0C496C8762AE4F1A620EAB34F38; Path=/
            Set-Cookie: ip_isocode=US
            Set-Cookie: clientlanguage_nl=en_EN; Expires=Thu, 07-Apr-2011 21:21:34 GMT; Path=/
    2011-04-06 14:49:50-0300 [scrapy] DEBUG: Crawled (200) <GET http://www.diningcity.com/netherlands/index.html> (referer: None)
    [...]

    DefaultHeadersMiddleware

    class scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware

    该中间件设置 DEFAULT_REQUEST_HEADERS 指定的默认request header。

    # Override the default request headers:
    DEFAULT_REQUEST_HEADERS = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language': 'en',
    }

    DownloadTimeoutMiddleware

    class scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware

    该中间件设置 DOWNLOAD_TIMEOUT 指定的request下载超时时间。

    # 下载器超时时间(单位: 秒),默认 180
    DOWNLOAD_TIMEOUT = 180

    HttpProxyMiddleware

    class scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware

    该中间件提供了对request设置HTTP代理的支持。你可以通过在 Request 对象中设置 proxy 元数据来开启代理。

    类似于Python标准库模块 urllib 及 urllib2 ,其使用了下列环境变量:

    http_proxy
    https_proxy
    no_proxy

    你也可以针对每个请求设置 proxy 元数据, 其形式类似于 http://some_proxy_server:port 。

    RedirectMiddleware

    class scrapy.downloadermiddlewares.redirect.RedirectMiddleware

    该中间件根据response的状态处理重定向的request。

    通过该中间件的(被重定向的)request的url可以通过 Request.meta 的 redirect_urls 键找到。

    RedirectMiddleware 可以通过下列设置进行配置(更多内容请参考设置文档):

    REDIRECT_ENABLED # 是否启用RedirectMiddleware中间件,默认: True
    REDIRECT_MAX_TIMES # 单个request被重定向的最大次数,默认: 20

    如果 Request.meta 包含 dont_redirect 键,则该request将会被此中间件忽略。

    RetryMiddleware

    class scrapy.downloadermiddlewares.retry.RetryMiddleware

    该中间件将重试可能由于临时的问题,例如连接超时或者HTTP 500错误导致失败的页面。

    爬取进程会收集失败的页面并在最后,spider爬取完所有正常(不失败)的页面后重新调度。 一旦没有更多需要重试的失败页面,该中间件将会发送一个信号(retry_complete), 其他插件可以监听该信号。

    RetryMiddleware 可以通过下列设定进行配置 (更多内容请参考设置文档):

    RETRY_ENABLED # 是否启用 RetryMiddleware ,默认: True
    RETRY_TIMES # 包括第一次下载,最多的重试次数,默认: 2
    RETRY_HTTP_CODES # 重试的response 返回值(code),默认: [500, 502, 503, 504, 400, 408]

    关于HTTP错误的考虑:

    如果根据HTTP协议,您可能想要在设定 RETRY_HTTP_CODES 中移除400错误。 该错误被默认包括是由于这个代码经常被用来指示服务器过载(overload)了。而在这种情况下,我们想进行重试。

    如果 Request.meta 包含 dont_retry 键, 该request将会被本中间件忽略。

    RobotsTxtMiddleware

    class scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware

    该中间件过滤所有robots.txt eclusion standard中禁止的request。

    确认该中间件及 ROBOTSTXT_OBEY 设置被启用以确保Scrapy尊重robots.txt。

    # Obey robots.txt rules,默认 True
    ROBOTSTXT_OBEY = False

    UserAgentMiddleware

    class scrapy.downloadermiddlewares.useragent.UserAgentMiddleware

    用于覆盖spider的默认 User-Agent 的中间件。

    要使得spider能覆盖默认的 User-Agent,其 USER_AGENT 属性必须被设置。

    # Crawl responsibly by identifying yourself (and your website) on the user-agent
    USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'

    参考文章

    https://scrapy-chs.readthedocs.io/zh_CN/1.0/topics/downloader-middleware.html

     

    展开全文
  • 全面学习vue.js配置,es6命令,解构赋值,symbol类型,set,weakSet,Map,WeakMap,Iterator遍历,Generator函数结构,Promise对象,async函数,箭头函数,class类,proxy代理,Decorator修饰,model模块,二进制...
  • 我司测试服务器位于内网,对于需要网络下载的应用场景非常不友好,因此需要为其设置网络代理进行互联网访问。 首先可参考以下文章 利用Fiddler作为网络代理 环境介绍 客户端: Windows10 Fiddler v5.0.20182.28034...

    20190821更新,使用https://registry.docker-cn.com 镜像更全

    背景介绍

    我司测试服务器位于内网,对于需要网络下载的应用场景非常不友好,因此需要为其设置网络代理进行互联网访问。
    首先可参考以下文章

    利用Fiddler作为网络代理

    环境介绍

    客户端:

    Windows10
    Fiddler v5.0.20182.28034 for .NET 4.6.1
    Chocolatey
    ssh client
    服务器:

    Centos 7.4

    操作步骤

    1. yum添加docker镜像源

    >> sudo yum-config-manager  --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    #如果想添加国内源,可以用以下命令添加阿里云镜像
    >> sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    2. 安装docker

    >> sudo yum install docker-ce docker-ce-cli containerd.io
    

    需要注意,由于docker最新版本是19.xx,但docker centos源中并没有这个这个版本的镜像,因此这步安装可能会失败
    如果安装失败,可以到docker package list 处下载镜像进行离线安装
    18.09.0-3.el7为例,下载以下两个rpm镜像放置到服务器本地
    在这里插入图片描述
    运行安装命令

    >>sudo yum install ./docker-ce-18.09.0-3.el7.x86_64.rpm
    >>sudo yum install ./docker-ce-cli-18.09.0-3.el7.x86_64.rpm
    

    等待命令运行结束,docker安装完成

    3. 为docker添加国内仓库源

    运行命令

    sudo vim /etc/docker/daemon.json
    

    写入文件(注意是https,有些文章介绍使用http地址http://hub-mirror.c.163.com),我尝试过,会找不到docker镜像。

    {
        "registry-mirrors": ["https://hub-mirror.c.163.com"]
    }
    

    4. 测试

    运行命令

    docker run hello-world
    

    输出如下

    Hello from Docker! This message shows that your installation appears
    to be working correctly.

    To generate this message, Docker took the following steps:

    1. The Docker client contacted the Docker daemon.
    2. The Docker daemon pulled the “hello-world” image from the Docker Hub.
      (amd64)
    3. The Docker daemon created a new container from that image which runs the
      executable that produces the output you are currently reading.
    4. The Docker daemon streamed that output to the Docker client, which sent it
      to your terminal.

    To try something more ambitious, you can run an Ubuntu container with:
    $ docker run -it ubuntu bash

    Share images, automate workflows, and more with a free Docker ID:
    https://hub.docker.com/

    For more examples and ideas, visit:
    https://docs.docker.com/get-started/

    大功告成!

    展开全文
  • 2021年前端面试题及答案

    万次阅读 多人点赞 2020-02-11 19:29:34
    1、 通过jsonp跨域 2、CORS 3、 document.domain + iframe跨域 4、 location.hash + iframe 5、 window.name + iframe跨域 6、 postMessage跨域 7、 nginx代理跨域 8、 nodejs中间件代理跨域 9、 WebSocket协议跨域...
  • 这是我自己编写的一款软件: 1.可以查看QQ说说信息,包含回复信息 2.可以查看空间相册信息,并支持批量下载到本地。 详细介绍: http://blog.csdn.net/jx_521/article/details/19564795
  • 代理之星.rar

    2019-10-13 20:00:28
    最新版本驱动级SOCKS5网络加速,原理:采用TDI及WFP驱动底层来拦截网络数据,然后R3应用层使用SOCKS5转发出去,实现了每个进程不同IP,局部及全局等代理功能。兼容所有WIN系统,支持所有游戏,所有联网进程代理。...
  • firefox专用代理插件

    2015-02-01 16:28:53
    我这的网一直下载不了firefox的插件, 终于在别的地方下载到了,在我发这个资源的时候还是最新版哦,4.5标准版
  • DOWNLOADER_MIDDLEWARES = { ...'xici(项目名称).middlewares(下载器中间件的文件名称).ProxyMiddleware(类名)': 543(优先级), 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None, }
  • Fiddler

    千次阅读 2019-07-04 18:26:02
    Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。 Fiddler 要比其他的网络调试要更加简单...
  • 首先要打开浏览器,虽然打开很慢,但是首先要有耐心等待打开浏览器。找到右上角的”自定义及控制Google Chrome“按钮,进入“设置”。 “设置” --> “显示高级设置”。 ...”更改服务器设置“ --> "连接" --> ”...
  • sqsx免费代理0.3_beta8 ,免费代理,值得一试。
  • 一、网络代理设置功能的作用 代理服务器处在客户机和服务器之间,对于远程服务器而言,代理服务器是客户机,它向服务器提出各种服务申请;对于客户机而言,代理服务器则是服务器,它接受客户机提出的申请并提供...
  • 下载: 主页: 博客: 代理英雄 Loamen Proxy Hero是一款专业的代理软件,可以测试,使用和管理代理列表。... 代理下载器:只需单击一下即可获取每日新的代理列表。 代理管理:轻松维护您的个人代理列表。 屏幕截图
  • 因为假如无法简单从谷歌服务器下载,要自己找资源的话,确实挺费神的,接下来,我写了一篇如何解决无法从谷歌代理服务器更新下载的文章,希望大家参考、点评、点赞。 当我们想直接从谷歌服务器更新环境、...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此...
  • 在linux系统中设置docker的代理服务器,修改docker hub的源站地址,实现加速下载。 配置代理服务器 创建或修改 /etc/docker/daemon.json: { "registry-mirrors": [ "https://1nj0zren.mirror.aliyuncs.com", ...
  • 处理方法: 方案: 修改最大连接数为1 出现的原因是:待连接的服务器可能不允许或者检测出多次连接,不被许可,因此修改成一个...知网tmd就是这样,只允许一个进行连接,下载完后,再可以修改后原来的最大连接数。 ...
  • burpsuite实战指南--安装和代理设置

    千次阅读 2018-06-19 10:08:09
    如上图步骤可以在浏览器上进行代理设置,不同的浏览器设置代理方式大同小异,我举例的是windows10的ie浏览。 注意: 在代理服务器设置的地址和 burp.suite 上的ip端口相同,设置完成后你可以访问http://burp便能...
  • 装饰模式 概述 : 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式相比生成子类更加灵活维基百科解释 : 通过使用修饰模式,可以在运行时扩充一个类的功能.原理是 : 增加一个修饰类包裹原来的类,包裹...
  • sqsx免费代理0.3_beta5.rar
  • Nginx搭建反向代理服务器

    千次阅读 2019-06-22 17:09:19
    前面学了web资源服务器的搭建,这篇博文就总结一下如何搭建反向代理服务器。 为什么需要反向代理 反向代理是实现负载均衡的一种方法。假设,很多人同时对订单进行支付,此时,用于支付服务的上游服务器挂掉了,用户...
  • Fiddler抓包教程

    千次阅读 多人点赞 2016-12-09 13:54:54
    Fiddler 要比其他的网络调试要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。 Fiddler抓包步骤: 点这里 下载.net 点这里 下载Fiddler 打开Fiddler,设置代理: 启动Fiddler,打开...
  • Win10系统用户在使用电脑时,偶尔会碰到上网条件被限制或IE浏览无法连接网络的问题。而解决这个问题的最好方法就是在Win10系统下设置IE代理上网。  详细步骤:  1、打开IE浏览。  2、点击打开右上角的设置...
  • Python3.X 爬虫实战(静态下载器与解析

    万次阅读 多人点赞 2017-06-17 01:05:34
    这一篇内容主要延续上一篇[《Python3.X 爬虫实战(先爬起来嗨)》](http://blog.csdn.net/yanbober/article/details/73162298),重点偏向于爬虫爬取静态页面的下载器与解析常用套路引导,主要适用于理解爬虫流程和...
  • Java JDK 动态代理(AOP)使用及实现原理分析

    万次阅读 多人点赞 2019-05-08 21:28:06
    代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。 代理模式UML图: 简单结构...
  • DOWNLOADER_MIDDLEWARES = { 'p5.middlewares.RandomUserAgentMiddleware': 543, 'p5.middlewares.CheckUserAgent': 544, }
  • 这是作者的系列网络安全...本文将分析Python攻防之构建Web目录扫描,实现IP代理池。本文参考了爱春秋ADO老师的课程内容,这里也推荐大家观看他Bilibili和ichunqiu的课程,同时也结合了作者之前的编程经验进行讲解。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 165,260
精华内容 66,104
关键字:

代理器下载