Win10环境下的Scrapy结合Tor进行匿名爬取

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

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

 

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

 

安装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浏览器上

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

时间: 2024-12-13 17:46:38

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

Scrapy 通过登录的方式爬取豆瓣影评数据

Scrapy 通过登录的方式爬取豆瓣影评数据 爬虫 Scrapy 豆瓣 Fly 由于需要爬取影评数据在来做分析,就选择了豆瓣影评来抓取数据,工具使用的是Scrapy工具来实现.scrapy工具使用起来比较简单,主要分为以下几步: 1.创建一个项目 ==scrapy startproject Douban 得到一个项目目录如下: ├── Douban │   ├── init.py │   ├── items.py │   ├── pipelines.py │   ├── settings.py

win10环境下ue4使用游戏手柄输入

忙里偷闲,趁着源码编译需要好久的时间,把这篇博客补上,来说说怎么在win10环境中,ue4使用游戏手柄输入,也就是gamepad输入. 1.我用的手柄是rapoo v10 这款手柄,连接无线USB之后,在"控制面板\硬件和声音\设备和打印机"里找关于手柄手柄的设备,然后输入,可以看到一些值的反馈. 2.需要下载 x360ce.exe 3.下载vld-2.5-setup.exe,我也忘记这是什么东西了. 4.下载手柄驱动,用什么下什么. 5.在手柄接入后,打开se360x,需要联网下载一

Win10环境下,告别MarkdownPad,用Notepad++搭建编写md文档的环境

1. 为什么抛弃MarkdownPad 2 ? MarkdownPad坊间号称 Windows 环境下最好用的markdown编辑器-EXO me??? 博主入MarkdownPad 2 坑就是因为这个坊间口碑,但是使用起来并不舒心-原因如下: 笨重,每次打开md文档都需要等待软件启动 无法预览效果,需要安装额外的软件Awesomium 打开文档,预览显示一片空白也是常事 2. Notepad++ 免费 轻量 插件众多 台湾同胞开发 支持众多语言风格的展示(可以集成编辑各类文档) 3. 搭建编写

熟悉Win10环境下Jetty的安装与启动

Jetty的下载 直接登录官网下载http://www.eclipse.org/jetty/ 下载完毕后解压.为了方便后期查找,我将解压后的文件放在D:\java\jetty-9.4.27. 同Tomcat一样,jetty也是免安装的.只需要将下载好的jetty.zip解压至指定目录后,jetty就可以使用了.(注:无需配置环境变量)解压后的目录-部分说明:Bin:Jetty命令,可以将Jetty配置成系统服务.Logs:Jetty运行时的日志文件.Webapps:存放Web应用, Jetty会

Scrapy和MongoDB的应用---爬取

Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取Web站点并从页面中提取结构化的数据.它最吸引人的地方在于任何人都可以根据需求方便的修改. MongoDB是现下非常流行的开源的非关系型数据库(NoSql),它是以“key-value”的形式存储数据的,在大数据量.高并发.弱事务方面都有很大的优势. 当Scrapy与MongoDB两者相碰撞会产生怎样的火花呢?与MongoDB两者相碰撞会产生怎样的火花呢?现在让我们做一个简单的爬取小说的TEST 1.安装Scra

Scrapy爬虫(5)爬取当当网图书畅销榜

??本次将会使用Scrapy来爬取当当网的图书畅销榜,其网页截图如下: ??我们的爬虫将会把每本书的排名,书名,作者,出版社,价格以及评论数爬取出来,并保存为csv格式的文件.项目的具体创建就不再多讲,可以参考上一篇博客,我们只需要修改items.py文件,以及新建一个爬虫文件BookSpider.py. ??items.py文件的代码如下,用来储存每本书的排名,书名,作者,出版社,价格以及评论数. import scrapy class BookspiderItem(scrapy.Item):

python框架Scrapy中crawlSpider的使用——爬取内容写进MySQL

一.先在MySQL中创建test数据库,和相应的site数据表 二.创建Scrapy工程 #scrapy startproject 工程名 scrapy startproject demo4 三.进入工程目录,根据爬虫模板生成爬虫文件 #scrapy genspider -l # 查看可用模板 #scrapy genspider -t 模板名 爬虫文件名 允许的域名 scrapy genspider -t crawl test sohu.com 四.设置IP池或用户代理(middlewares.

【Scrapy框架之CrawlSpider全站爬取】--2019-08-06 15:17:42

原创链接: http://106.13.73.98/__/144/ 起 提问: 如果想要快速爬取网站的全站数据,有几种实现方法? 基于Scrapy框架中 Spider 的递归爬取来实现(Request模块递归回调parse方法) 基于 CrawlSpider 的自动爬取来实现(更加高效简洁) ???????CrawlSpider 是 Spider 的一个子类,除了继承了 Spider 的特性和功能外,还派生了其自己独有的更加强大的特性和功能.其中最为显著的功能就是 LinkExtractors:

【Scrapy框架之CrawlSpider全站爬取】 𓄛

原文: http://blog.gqylpy.com/gqy/369 起 提问: 如果想要快速爬取网站的全站数据,有几种实现方法? 基于Scrapy框架中 Spider 的递归爬取来实现(Request模块递归回调parse方法) 基于 CrawlSpider 的自动爬取来实现(更加高效简洁) ???????CrawlSpider 是 Spider 的一个子类,除了继承了 Spider 的特性和功能外,还派生了其自己独有的更加强大的特性和功能.其中最为显著的功能就是 LinkExtractors