小编Cra*_*ton的帖子

如何通过Polipo over TOR通过Scrapy连接到https站点?

不完全确定这里的问题是什么.

运行Python 2.7.3和Scrapy 0.16.5

我已经创建了一个非常简单的Scrapy蜘蛛来测试连接到我的本地Polipo代理,因此我可以通过TOR发送请求.我蜘蛛的基本代码如下:

from scrapy.spider import BaseSpider

class TorSpider(BaseSpider):
    name = "tor"
    allowed_domains = ["check.torproject.org"]
    start_urls = [
        "https://check.torproject.org"
    ]

    def parse(self, response):
        print response.body
Run Code Online (Sandbox Code Playgroud)

对于我的代理中间件,我已经定义:

class ProxyMiddleware(object):
    def process_request(self, request, spider):
        request.meta['proxy'] = settings.get('HTTP_PROXY')
Run Code Online (Sandbox Code Playgroud)

我的设置文件中的HTTP_PROXY定义为HTTP_PROXY = 'http://localhost:8123'.

现在,如果我将我的起始URL更改为http://check.torproject.org,一切正常,没有问题.

如果我尝试针对https://check.torproject.org运行,每次都会收到400 Bad Request错误(我也尝试过不同的https://站点,并且所有这些站点都有相同的问题):

2013-07-23 21:36:18+0100 [scrapy] INFO: Scrapy 0.16.5 started (bot: arachnid)
2013-07-23 21:36:18+0100 [scrapy] DEBUG: Enabled extensions: LogStats, TelnetConsole, CloseSpider, WebService, CoreStats, SpiderState
2013-07-23 21:36:18+0100 [scrapy] DEBUG: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, …
Run Code Online (Sandbox Code Playgroud)

python tor scrapy

8
推荐指数
1
解决办法
2763
查看次数

在 PHP7 中,为什么子类的方法可以定义返回类型,而重写的父类方法却不能?

考虑以下代码片段:

class Foo
{
    public function fooMethod()
    {
        return [];
    }
}

class Bar extends Foo
{
    public function fooMethod(): array
    {
        return ['something'];
    }
}
Run Code Online (Sandbox Code Playgroud)

这可以正常工作,没有任何错误(在 PHP7.4 和 PHP7.3 中测试)。为什么 PHP 不强制子级的方法签名与父级相同(即没有返回类型)?PHP 允许这样做是否有正当理由,或者这是一个错误?我的猜测是,通过不在父级中声明它,我们本质上是说它可以返回“混合”,因此任何返回类型都是有效的,但我很想知道原因。

php inheritance

1
推荐指数
1
解决办法
1116
查看次数

标签 统计

inheritance ×1

php ×1

python ×1

scrapy ×1

tor ×1