将 Tor 与 scrapy 框架结合使用

2024-04-11

我正在尝试抓取网站,该网站足够复杂以阻止机器人,我的意思是它只允许几个请求,之后 Scrapy 挂起。

问题1:有没有办法,如果Scrapy挂起,我可以从同一点重新启动我的爬行过程。 为了摆脱这个问题,我这样写了我的设置文件

BOT_NAME = 'MOZILLA'
BOT_VERSION = '7.0'

SPIDER_MODULES = ['yp.spiders']
NEWSPIDER_MODULE = 'yp.spiders'
DEFAULT_ITEM_CLASS = 'yp.items.YpItem'
USER_AGENT = '%s/%s' % (BOT_NAME, BOT_VERSION)

DOWNLOAD_DELAY = 0.25
DUPEFILTER=True
COOKIES_ENABLED=False
RANDOMIZE_DOWNLOAD_DELAY=True
SCHEDULER_ORDER='BFO'

这是我的程序:

class ypSpider(CrawlSpider):

   name = "yp"


   start_urls = [
       SOME URL

   ]
   rules=(
      #These are some rules
   )
   def parse_item(self, response):
   ####################################################################
   #cleaning the html page by removing scripts html tags    
   #######################################################
   hxs=HtmlXPathSelector(response)

问题是我可以在哪里编写http代理,我是否必须导入任何与tor相关的类,我是Scrapy的新手,因为在这个小组中我学到了很多东西,现在我正在尝试学习“如何使用ip旋转或tor”

正如我们的一位成员所建议的,我启动了 tor 并将 HTTP_PROXY 设置为

set http_proxy=http://localhost:8118

但它抛出了一些错误,

failure with no frames>: class 'twisted.internet.error.ConnectionRefusedError'   Connection was refused by other side 10061: No connection could be made because the target machine actively refused it.

所以我将 http_proxy 更改为

set http_proxy=http://localhost:9051

现在错误是

failure with no frames>: class 'twisted.internet.error.ConnectionDone' connection was closed cleanly.

我检查了 Firefox 网络设置,在那里我看不到任何 http 代理,但它使用的是 SOCKSV5,而是显示 127.0.0.1:9051。 (在 TOR 之前,它不需要代理)请帮助我,我仍然不明白如何通过 Scrapy 使用 TOR。 我应该使用哪个 TOR 包以及如何使用? 我希望我的两个问题都能得到解决

  1. 如果 scrapy 爬虫由于某种原因挂起(连接失败),我想从那里恢复服务本身
  2. 如何在Scrapy中使用轮换IP

TOR 本身不是 http 代理,端口 8118 和连接拒绝错误表明您没有正确运行 privoxy[1]。尝试正确设置 privoxy,然后使用环境变量重试http_proxy=http://localhost:8118.

我已经使用 privoxy 和 scrapy 成功完成了 TOR 爬行。

[1] http://www.privoxy.org/ http://www.privoxy.org/

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

将 Tor 与 scrapy 框架结合使用 的相关文章

随机推荐

  • 具有多个控件和 generic.xaml 的自定义控件库

    如果我在一个自定义控件库中为两个不同的控件定义两种默认样式 我会收到错误 一个库中是否可以有两个或多个具有默认 generic xaml 的控件 Thanks 对的 这是可能的 推荐的方法是将每个控件的样式放置在其自己的资源字典中 并拥有一
  • 返回用于在 using C# 中使用的变量

    我返回在 using 语句内的 using 语句中创建的变量 听起来很有趣 public DataTable foo using DataTable properties new DataTable do something return
  • 如何在 MVC3 中使用 ViewBag 更改或刷新数据

    我想使用 ViewBag 刷新视图中的数据 是否有可能或者我可以使用其他技术 这是我的示例代码 在我的视图页面中 家庭详情 ViewBag Details 0 Name 在我的控制器中 public ActionResult FamilyD
  • 使用命名范围依赖于下拉列表值的文本框值的 Excel VBA 代码

    我拥有的 我有一个 Excel VBA 自定义用户表单 该表单包含一个下拉列表 行业类别 和文本框 对应行业规范者 对于每个行业类别有一个行业规范者 该类别的缩写版本 The 行业类别 and 行业规范者将始终位于同一行 下拉列表由单元格名
  • iPhone - 如何在按下按钮时制作动画?

    有没有办法在点击 iPhone 按钮时制作自定义动画 我想要类似 App Store 按钮的东西 它会显示价格 然后当您单击它时 它会改变颜色并且文本会更改为 立即购买 然后当您再次单击它时 它会完成购买 UIViewAnimationTr
  • 如何从 java 类(在 Lucee 中)中的方法返回 Coldfusion 结构?

    我正在编写一个java类 并且想从方法返回一个coldfusion结构 结构扩展了映射和其他东西 我不是 Java 程序员 所以我不知道如何解决这个问题 这是 lucee java 文档 http javadoc lucee org 当我尝
  • 如何使用Java将生成的PDF文件保存到MySQL数据库?

    我有一个 Java 类 它使用以下命令生成 PDF 文件iText https itextpdf com en图书馆 现在根据我的需要 我必须将生成的 PDF 文件保存到 MySQL 数据库表中 但我不知道该怎么做 我的担忧是 what d
  • Flutter 中的 Widgets 库错误捕获异常

    我在 Flutter 中有这个应用程序 它有两个类来生成笔记列表 这是主类 MyApp 类 import package flutter cupertino dart import package flutter material dart
  • 使用 jQuery.load('url.html') 确定插入图像后何时加载图像

    我目前有与此类似的东西 它在目标页面上加载一个包含图像的 div a galleryNext click function chnage the image to loading info html LOADING currentGal l
  • SQL Server dbo.sysdiagrams 是用户表或系统表

    当在简单数据库中使用数据库图时 SQL Server 在以下位置创建一个 dbo sysdiagrams 表 Table Systam Tables节点 在 Microsoft Management Studio Object Explor
  • 使用自定义颜色代码设置面板背景

    在 WPF 中 我可以使用以下代码设置堆栈面板的背景 stackPanelFlasher Background Brushes Aqua 例如 如何将颜色设置为十六进制颜色代码 C7DFFC BrushConverter bc new Br
  • 延迟加载插件 (jQuery)

    a lightbox hover function if jQuery lightbox required otherwise lightbox js will be loaded on hover each time a lightbox
  • 我的 CryptoJS 加密/解密不起作用

    我有一个 JSON 数组数组 我尝试使用 CryptoJS 对其值进行加密 然后打印以在另一个文件中使用 其中这些值应使用用户给定的密码进行解密 但我做错了什么 在解密 URL 时收到 未捕获错误 格式错误的 UTF 8 数据 加密 js
  • 将时间列拆分为开始时间/结束时间列

    我有一张表格 其中包含有关他们全天所做工作的信息 我需要获取每个任务的开始时间 结束时间 目前 我能够提取每个任务的时间戳 但我希望创建 开始时间 和 结束时间 列 开始时间是前一行的时间戳 结束时间是当前行的时间戳 有什么简单的方法可以做
  • iOS - WebView 和字符串

    我有一个名为 htmlString 的字符串 其中包含一些 html 格式的信息 我需要将这些信息放入加载整个 html 字符串 包含颜色和字体 的 webView 中 我需要知道弦的高度 我能怎么做 你想做类似的事情 webView lo
  • 检查表达式树中的类型转换?

    我正在使用 Expression 创建一些动态生成的代码 我的解决方案有效 但有一个功能除外 我想要进行检查类型转换 如果转换失败 则会抛出 TypeCastException 我找到了 Expression TypeAs 它执行类型转换
  • 将 iOS 9 Today 扩展转换为 iOS 10 的尺寸问题

    晚上好 我在理解今天的扩展时遇到了很大的问题 我读过很多教程和介绍 但没有任何帮助我理解这个问题 在 iOS 9 上 该扩展可以正常工作 在 iOS 10 上则不行 我的大问题是 iOS 10 中小部件的自动调整大小 在 iOS 9 上 小
  • 如何将引导程序形式的输入与输入组插件对齐?

    我有一个非常简单的 Bootstrap 3 表单 当我不使用它时 我可以轻松 自动 对齐input group addons 在我的表单中使用它们后 无法对齐它 由于添加了插件 带有插件的线更宽
  • 了解 cassandra 复制因子与一致性级别

    我想澄清 Cassandra 中复制因子和一致性级别的基本概念 如果有人可以回答以下问题 我们将不胜感激 RF 复制因子 RC 读一致性 WC 写一致性 2 个 cassandra 节点 例如 A B RF 1 RC ONE WC ONE
  • 将 Tor 与 scrapy 框架结合使用

    我正在尝试抓取网站 该网站足够复杂以阻止机器人 我的意思是它只允许几个请求 之后 Scrapy 挂起 问题1 有没有办法 如果Scrapy挂起 我可以从同一点重新启动我的爬行过程 为了摆脱这个问题 我这样写了我的设置文件 BOT NAME