将 Tor 代理与 scrapy 一起使用

2024-04-03

我需要帮助在 Ubuntu 中设置 Tor 并在 scrapy 框架中使用它。

我做了一些研究并找到了这个指南:

class RetryChangeProxyMiddleware(RetryMiddleware):

    def _retry(self, request, reason, spider):
        log.msg('Changing proxy')
        tn = telnetlib.Telnet('127.0.0.1', 9051)
        tn.read_until("Escape character is '^]'.", 2)
        tn.write('AUTHENTICATE "267765"\r\n')
        tn.read_until("250 OK", 2)
        tn.write("signal NEWNYM\r\n")
        tn.read_until("250 OK", 2)
        tn.write("quit\r\n")
        tn.close()
        time.sleep(3)
        log.msg('Proxy changed')
        return RetryMiddleware._retry(self, request, reason, spider)

然后在settings.py中使用它:

DOWNLOADER_MIDDLEWARE = {
                         'spider.middlewares.RetryChangeProxyMiddleware': 600,
                         }

然后你只想通过本地 Tor 代理(polipo)发送请求,可以通过以下方式完成:

tsocks scrapy crawl spirder 

有谁可以确认这种方法有效并且您获得不同的IP吗?


我正在使用这个片段:http://snipplr.com/view/66992/use-a-random-user-agent-for-each-request/ http://snipplr.com/view/66992/use-a-random-user-agent-for-each-request/

更新:已修复损坏的链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Tor 代理与 scrapy 一起使用 的相关文章

随机推荐

  • Spring 中的自定义身份验证

    我有个问题 在 Struts 中 我有一个处理用户身份验证的操作 即 我获取用户的凭据并使用 DAO 来验证用户凭据 我想在 Spring 中保持相同的设置 我正在使用 Spring 3 0 3 RELEASE 我的问题是 我已经阅读了 S
  • com.android.ddmlib.InstallException:EOF

    我正在使用 Android Development Toolkit 版本 16 0 1 v201112150204 238534 和库 Android 4 0 3 编译后 模拟器启动 几分钟后无法启动 当我尝试启动时 从控制台收到以下消息
  • ADFS(3.0)与iPad应用程序集成以实现SSO实施

    我在用ADAL SDK https github com AzureAD azure activedirectory library for objc https github com AzureAD azure activedirecto
  • java.lang.NoClassDefFoundError: android.security.MessageDigest

    在我的应用程序中我使用MessageDigest getInstance SHA 1 获取SHA1 在android 2 3中可以成功运行 但在android 4 0中无法运行 并且会显示以下异常 FATAL EXCEPTION main
  • Docker远程错误:tls:握手失败

    我安装了 Docker 版本 Docker version 19 03 8 build afacb8b 当我尝试使用 docker pull 命令时 例如通过 PowerShell 和 Windows 中的管理权限 docker pull
  • 可能的 Spring Boot 或 Spring Security 内存泄漏

    我一直在浸泡测试下运行带有 Spring Security 的 Spring Boot 应用程序 发现它逐渐填满了内存分配 我用以下命令启动了应用程序 java Xmx128m XX PrintGCDetails XX PrintGCTim
  • Appengine 网站的架构指南?

    我使用 PHP 创建了难以维护的网站 因为它很容易做一些又快又脏的事情 我不想在 Google 的 appengine 上使用 Python Django 做同样的事情 使用 Django 和 appengine 创建网站有什么好的架构参考
  • YTPlayerView 加载视频列表

    我正在尝试在我的应用程序上播放 Youtube 视频 我在用YTPlayerView用于按视频 ID 播放视频的库 问题是 当我尝试播放视频播放器列表时 显示错误 发生错误 请稍后再试 播放 ID someid 我使用以下代码来播放单个视频
  • 无法挂载内存cgroup

    我尝试使用以下命令挂载内存 cgroup sudo mount t cgroup none sys fs cgroup memory o memory 我收到错误 mount sys fs cgroup memory wrong fs ty
  • 如何在 JavaScript 中查找对象数组中的值?

    我有一个对象数组 Object 1 name bob dinner pizza 2 name john dinner sushi 3 name larry dinner hummus 我希望能够在对象 数组中搜索键为 晚餐 的位置 并查看它
  • Tomcat 的未知版本被指定为 8.0.24 / Eclipse 4.4.2 (Luna)

    几个月前 我下载并解压了 tomcat 8 0 24 它运行得很好 我做了一些测试 在记事本中创建 servlet 用 javac exe 编译并放置在 webapps 中 有效 我的 Eclipse 版本是 4 4 2 称为 Luna 我
  • WGET 从网站下载 pdf 时出现问题

    我正在尝试从此网站下载所有 pdf 和 ppt http mlss2011 comp nus edu sg index php n Site Slides http mlss2011 comp nus edu sg index php n
  • AngularJS 未知提供商 cookieReader

    我正在尝试使用 AngularJS 翻译 我遇到的问题是我得到Unknown provider cookieReaderProvider lt cookieReader lt cookies lt cookieStore lt transl
  • Android 上的 Firefox 移动浏览器不显示 HTML 表单验证错误消息

    Firefox 移动浏览器 我的移动 Android 设备上的版本为 107 x 不显示基于 html5 的表单验证错误 它确实可以在桌面版 Firefox 浏览器上按预期工作 也可以在桌面版和移动版 Chrome 上运行 提供示例很容易
  • 指定的设备未打开或未被 MCI 识别

    我正在使用Python编写一个游戏 需要播放音效 所以我使用了playsound模块 from playsound import playsound playsound Typing wav False 当我尝试运行程序时 返回了此错误 E
  • Bootstrap 4 – 当导航栏折叠时如何连续显示项目?

    我想当窗口在导航栏中折叠时显示一些彼此相邻的项目 目前 它在一列中显示项目 如下所示 导航栏折叠 https i stack imgur com DOF0z png 我想要用户名旁边的图像
  • 使用 Javascript 隐藏具有淡出效果的 Bootstrap 模式

    我有一个基本的引导模式要登录 当我点击提交时它不会自行关闭 我用它解决了这个简单的jquery https stackoverflow com questions 23615549 bootstrap modal not closing o
  • 在 Python 2 中取消 Python 3 中的类

    如果使用协议 2 对 Python 3 类进行 pickle 则它应该可以在 Python 2 中工作 但不幸的是 这会失败 因为某些类的名称已更改 假设我们有如下调用的代码 Sender pickle dumps obj 2 Receiv
  • GAE:API 请求 datastore_v3.Next() 发生错误

    使用一个过滤器进行简单查询 如下所示 PersistenceManager pm PMF getFactory getPersistenceManager Key userKey KeyFactory createKey User clas
  • 将 Tor 代理与 scrapy 一起使用

    我需要帮助在 Ubuntu 中设置 Tor 并在 scrapy 框架中使用它 我做了一些研究并找到了这个指南 class RetryChangeProxyMiddleware RetryMiddleware def retry self r