本文内容来源:http://blog.privatenode.in/torifying-scrapy-project-on-ubuntu/

在使用Scrapy的时候,一旦进行高频率的爬取就容易被封IP,此时可以通过使用TOR来进行匿名爬取,同时要安装Polipo代理服务器

 

注意:要进行下面的操作的前提是,你能翻墙

 

安装TOR

下载地址:https://www.torproject.org/download/download.html.en

下载Expert Bundle并解压到一个目录下,例如:D:\Tor,这个版本并没有一个图形化的操作界面,要修改配置十分麻烦,可以通过下载Vidalia来使用TOR,Vidalia的下载地址:https://people.torproject.org/~erinn/vidalia-standalone-bundles/ ,下载该页面的最下面那个即可:vidalia-standalone-0.2.21-win32-1_zh-CN.exe,安装完成之后,以管理员权限运行Start Vidalia.exe,进行下面的设定

 

点击启动Tor

过一阵子后显示连接成功

 

下载安装Polipo

下载地址:http://www.pps.univ-paris-diderot.fr/~jch/software/files/polipo/

选择polipo-1.1.0-win32.zip,下载并解压,然后编辑解压后的文件config.sample,在文件的开头加上以下配置

socksParentProxy = "localhost:9050"

socksProxyType = socks5

diskCacheRoot = ""

使用cmd命令运行该目录下的程序:polipo.exe -c config.sample

打开edge浏览器,设置代理

 

然后在浏览器中访问:https://check.torproject.org/

看到以下的界面意味着配置成功

 

配置Scrapy

在settings.py文件中加入下面的内容

#More comprehensive list can be found at

#http://techpatterns.com/forums/about304.html

USER_AGENT_LIST = [

    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7',

    'Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0) Gecko/16.0 Firefox/16.0',

    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10',

    ]

HTTP_PROXY = 'http://127.0.0.1:8123'

DOWNLOADER_MIDDLEWARES = {

    'myspider.middlewares.RandomUserAgentMiddleware': 400, # 修改这里的myspider为项目名称

    'myspider.middlewares.ProxyMiddleware': 410, # 同上

    'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware': None,

}

在scrapy项目的根目录新建一个middlewares.py文件,并输入以下内容

import random

from scrapy.conf import settings

from scrapy import log

class RandomUserAgentMiddleware(object):

    def process_request(self, request, spider):

        ua = random.choice(settings.get('USER_AGENT_LIST'))

        if ua:

            request.headers.setdefault('User-Agent', ua)

            #this is just to check which user agent is being used for request

            spider.log(

                u'User-Agent: {} {}'.format(request.headers.get('User-Agent'), request),

                level=log.DEBUG

            )

class ProxyMiddleware(object):

    def process_request(self, request, spider):

        request.meta['proxy'] = settings.get('HTTP_PROXY')

至此,scrapy与tro的整合完成了,本文不对任何人使用这个方法所造成的后果负责

 

配置Tor浏览器

下面的内容与上面无关,只是记录一下如何使用Tor浏览器,在我们下载tor的页面上,还有一个下载选项(第一个就是一个浏览器,通过该浏览器可以匿名访问网页,Tor Browser会自动通过Tor网络启动Tor的后台进程连接网络。一旦关闭程序的便会自动删除隐私敏感数据,如HTTP cookie和浏览历史记录,以避免窃听并保留在互联网上的隐私)

下载了第一个Tor Browser并安装后,进行下面的配置

由于Tor的连接被墙掉了,所以要配置网桥

 

获取网桥:https://bridges.torproject.org/options

 

将网桥复制下来,粘贴到tor浏览器上

有时候连接不成功,就要再申请新的网桥来尝试

Win10环境下的Scrapy结合Tor进行匿名爬取的更多相关文章

  1. win10环境下使用苹果虚拟机不要开多线程应用下载文件

    win10环境下使用苹果虚拟机开多线程应用下载文件时候卡死,网络老掉. 8GB内存不够用?2.5mb网速不够用? 开的百度网盘下载个电影 结果虚拟机卡的不行 关了 网盘 挂起虚拟机 然后再 继续运行客 ...

  2. win10环境下如何运行debug

    在学习汇编的时候,会需要用到debug调试程序,但是现在win10默认已经移除了这个插件,我们需要手动安装,下面就告诉大家如何在win10环境下安装debug. 1:准备工具 1.1 DOSBox 1 ...

  3. 在win10环境下搭建 solr 开发环境

    在win10环境下搭建 solr 开发环境 2017年05月30日 09:19:32 SegaChen0130 阅读数:1050   在win10环境下搭建 solr 开发环境 安装环境  Windo ...

  4. win10环境下安装Ubantu双系统(超详解)

    win10环境下安装Ubantu双系统 1.准备工作: 先去ubantu官网(https://www.ubuntu.com/download)去下载ubantu镜像.根据自己的实际情况选择32位的或者 ...

  5. win10环境下MySql(5.7.21版本)安装过程

    windows10上安装mysql(详细步骤) 2016年09月06日 08:09:34 阅读数:60405 环境:windwos 10(1511) 64bit.mysql 5.7.14 时间:201 ...

  6. 在 win10 环境下,设置自己写的 程序 开机自动 启动的方法

    原文:在 win10 环境下,设置自己写的 程序 开机自动 启动的方法 1.是登录自己用户时才能开机启 C:\Users\username\AppData\Roaming\Microsoft\Wind ...

  7. win10环境下VS2019配置NTL库

    win10环境下VS2019配置NTL库 1.下载 WINNTL库文件     https://www.shoup.net/ntl/download.html 2.创建静态库 文件->新建-&g ...

  8. YApi——手摸手,带你在Win10环境下安装YApi可视化接口管理平台

    手摸手,带你在Win10环境下安装YApi可视化接口管理平台 YApi YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建 ...

  9. Window7环境下安装Scrapy 方法

    Window7环境下安装Scrapy Scrapy在CPython(默认Python实现)和PyPy(从PyPy 5.9开始)下运行Python 2.7和Python 3.4或更高版本. 如果您使用的 ...

随机推荐

  1. [Javascript] “||”和“&&”的灵活运用

    引用URL : http://my249645546.iteye.com/blog/1553202 你是否看到过这样的代码:a=a||""; 可能javascript初学者会对此感 ...

  2. 【IT名人堂】何云飞:阿里云数据库的架构演进之路

    [IT名人堂]何云飞:阿里云数据库的架构演进之路 原文转载自:IT168 ​ 如果说淘宝革了零售的命,那么DT革了企业IT消费的命.在阿里巴巴看来,DT时代,企业IT消费的模式变成了“云服务+数据”, ...

  3. centos下 rpm包sphinx安装成功提示

    sphinx: /etc/sphinx /usr/share/sphinx Sphinx installed! Now create a full-text index, start the sear ...

  4. Myeclipse集成Jboss 6.1控制台不输出日志信息

    在使用myeclipse+jboss 6.1开发的时候发现jboss能够正常启动但是myeclipse的控制台却没有任何的信息输出,这使得我没有办法开发,在查找了大部分的资料发现很多说要改什么jbos ...

  5. java程序执行内存处理过程

    我们学习知识,不仅要知其然,还要知其所以然,你的工资必定和你学习的深度成正比. 在以往.net的学习过程中,我们了解了怎么去开发一个程序,并有了一定的开发经验,但是一个程序具体是怎么在内存中运行的呢? ...

  6. Spring学习总结一——SpringIOC容器一

    什么是spring spring是一个开源的轻量级的应用开发框架,它提供了IOC和AOP应用,可以减少组件之间的耦合度,即 解耦,spring容器可以创建对象并且管理对象之间的关系. 一:实例化spr ...

  7. xe5 android listbox的 TMetropolisUIListBoxItem

    listbox实现以下效果: 关键代码,采用数据集的方式 type PpatientData=^RpatientData; RpatientData= record patient_id:string ...

  8. POJ 3268 Silver Cow Party (Dijkstra)

    Silver Cow Party Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 13982   Accepted: 6307 ...

  9. codeforces 680C C. Bear and Prime 100(数论)

    题目链接: C. Bear and Prime 100 time limit per test 1 second memory limit per test 256 megabytes input s ...

  10. 【转】loadrunner场景对性能测试策略的映射

    性能测试策略 LoadRunner性能测试场景 压力测试 面向目标测试场景+忽略think time 负载测试 手工测试场景+同步点+think time+虚拟IP+带宽模拟…… 并发测试 同步点+多 ...