Win10環境下的Scrapy結合Tor進行匿名爬取

来源:http://www.cnblogs.com/kylinlin/archive/2016/03/04/5242266.html
-Advertisement-
Play Games

本文內容來源:http://blog.privatenode.in/torifying-scrapy-project-on-ubuntu/ 在使用Scrapy的時候,一旦進行高頻率的爬取就容易被封IP,此時可以通過使用TOR來進行匿名爬取,同時要安裝Polipo代理伺服器 註意:要進行下麵的操作的前...


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

在使用Scrapy的時候,一旦進行高頻率的爬取就容易被封IP,此時可以通過使用TOR來進行匿名爬取,同時要安裝Polipo代理伺服器

 

註意:要進行下麵的操作的前提是,你能FQ

 

安裝TOR

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

Image 003

下載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,進行下麵的設定

Image 007

Image 006

 

點擊啟動Tor

Image 009

過一陣子後顯示連接成功

Image 010

 

下載安裝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

Image 011

打開edge瀏覽器,設置代理

Image 013

 

然後在瀏覽器中訪問:https://check.torproject.org/

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

Image 014

 

配置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和瀏覽歷史記錄,以避免竊聽並保留在互聯網上的隱私)

Image 015

下載了第一個Tor Browser並安裝後,進行下麵的配置

Image 016

由於Tor的連接被牆掉了,所以要配置網橋

Image 017

 

獲取網橋:https://bridges.torproject.org/options

Image 018

 

Image 019

將網橋複製下來,粘貼到tor瀏覽器上

Image 020

Image 022

有時候連接不成功,就要再申請新的網橋來嘗試


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本人也尚在學習使用之中,錯誤之處請大家指正。 開發環境:vs2015 UP1 項目環境:asp.net 4.6.1 模板為:asp.net 5 模板 identity版本為:asp.net identity 3.0.0 如圖: 建成後的項目已經和之前的模板建成的項目有非常大的不同了。identity
  • 每次寫分頁導航的時候都要在html頁面寫一堆標簽和樣式,太麻煩了,所以乾脆自己動手封裝一個自己喜歡的類直接生成。 一、PageHelper類: /// <summary> /// 分頁導航 /// </summary> /// <param name="pageNum">當前第幾頁</param>
  • 好久沒有寫博客了,這段時間準備寫一下字元串函數 QQ群: 499092562;歡迎交流 字元串函數: 1、LEN(需要獲取長度的字元串) 返回:字元串的長度 示例: SELECT LEN('小搬運工很帥!') 2、RIGHT(需要被從右邊截取的字元串,截取的開始下標,截取的長度) 返回:右邊的字元串
  • http://www.ourd3js.com/wordpress/
  • Lua中的協程和多線程很相似,每一個協程有自己的堆棧,自己的局部變數,可以通過yield-resume實現在協程間的切換。不同之處是:Lua協程是非搶占式的多線程,必須手動在不同的協程間切換,且同一時刻只能有一個協程在運行。並且Lua中的協程無法在外部將其停止,而且有可能導致程式阻塞。 協同程式(C
  • 2014年3月,Java 8發佈,Lambda表達式作為一項重要的特性隨之而來。或許現在你已經在使用Lambda表達式來書寫簡潔靈活的代碼。比如,你可以使用Lambda表達式和新增的流相關的API,完成如下的大量數據的查詢處理: int total = invoices.stream() .filt
  • Queue介面與List、Set同一級別,都是繼承了Collection介面。LinkedList實現了Queue接 口。Queue介面窄化了對LinkedList的方法的訪問許可權(即在方法中的參數類型如果是Queue時,就完全只能訪問Queue介面所定義的方法 了,而不能直接訪問 LinkedLi
  • 在 openssl 中使用非阻塞的bio方法紀要。通過與 epoll 的配合,完成高效的加密連接處理。
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...