小编Par*_*eog的帖子

如何使用scrapy CrawlSpider请求发送cookie?

我正在尝试使用Python的Scrapy框架创建这个Reddit 剪贴板.

我已经使用CrawSpider来爬行Reddit及其subreddits.但是,当我遇到包含成人内容的网页时,该网站会要求提供Cookie over18=1.

所以,我一直在尝试发送一个cookie,其中包含蜘蛛所做的每一个请求,但是,它没有成功.

在这里,是我的蜘蛛代码.正如您所看到的,我尝试使用该start_requests()方法为每个蜘蛛请求添加一个cookie .

这里有人能告诉我怎么做吗?或者我做错了什么?

from scrapy import Spider
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from reddit.items import RedditItem
from scrapy.http import Request, FormRequest

class MySpider(CrawlSpider):
    name = 'redditscraper'
    allowed_domains = ['reddit.com', 'imgur.com']
    start_urls = ['https://www.reddit.com/r/nsfw']

    rules = (
        Rule(LinkExtractor(
            allow=['/r/nsfw/\?count=\d*&after=\w*']),
            callback='parse_item',
            follow=True),
    )

    def start_requests(self):
        for i,url in enumerate(self.start_urls):
            print(url)
            yield Request(url,cookies={'over18':'1'},callback=self.parse_item)

    def parse_item(self, response):
        titleList = response.css('a.title')

        for title in titleList:
            item = RedditItem()
            item['url'] …
Run Code Online (Sandbox Code Playgroud)

python cookies scrapy web-scraping

16
推荐指数
2
解决办法
1万
查看次数

这是使用消息队列的正确方法吗?

我是消息队列的新手,现在我ZeroMQ在我的Linux服务器上使用.我PHP用来写客户端和服务器.这主要用于处理推送通知.

正如他们所展示的那样,我在单个I/O线程实例上使用基本的REQ- REP形式 - 通信模式ZMQContext.

这是最小化的zeromqServer.php代码:

include("someFile.php");

$context = new ZMQContext(1);

//  Socket to talk to clients
$responder = new ZMQSocket($context, ZMQ::SOCKET_REP);
$responder->bind("tcp://*:5555");

while (true) {
    $request = $responder->recv();
    printf ("Received request: [%s]\n", $request);

    //  -----------------------------------------------------------------
    //                                    Process push notifications here
    //
    sleep (1); 

    //  -----------------------------------------------------------------
    //                                          Send reply back to client
    $responder->send("Basic Reply");
}
Run Code Online (Sandbox Code Playgroud)

这是一个最小化的ZeroMQ 客户端:

$context = new ZMQContext();

//  Socket to talk to server …
Run Code Online (Sandbox Code Playgroud)

php sockets linux message-queue zeromq

15
推荐指数
2
解决办法
2527
查看次数

如何使用HTML5直播,没有Flash?

问题:我需要我的客户能够将他们的网络摄像头流式传输到我的流媒体服务器(例如Wowza服务器).我正在用PHP构建我的网站.我经历了各种流媒体网站,如twitch.tv,livestream.com,发现他们都使用第三方广播软件,如Wirecast,XSplit广播公司,OBS等,将网络摄像头信息流传输到服务器.然后我遇到了像vLine,Opentokrtc这样使用WebRTC进行视频聊天的网站.

我的问题:所以,我的问题是,我是否可以将流发送到像Wowza这样的广播服务器(这样他们就可以广播我的直播流)而不使用只有WebRTC的广播软件?如果是,那怎么样?如果,不,那么其他选择是什么?

PS.我不想在这里使用Flash,ActionScript.

php html5 live-streaming wowza webrtc

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

如何在Google Colaboratory上运行下载的Jupyter笔记本?

我正在使用Google Colaboratory和github。我创建了一个新的Google Colab笔记本,并使用一个简单!git clone <github_link>的笔记本将github项目克隆到其中。

现在,我在github项目中有一个Jupyter笔记本,需要在Google Colab上运行。我怎么做?

jupyter-notebook google-colaboratory

10
推荐指数
2
解决办法
6113
查看次数

如何在Laravel 5中配置MariaDB?

我在某处看过,Laravel 5中没有"MariaDB"的驱动程序,我们可以使用mysql驱动程序在Laravel 5中使用MariaDB.但即便如此,当我提供MariaDB用户名和密码时,我收到此错误.密码是"root",用户名也是"root".

SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud)

有人可以指导我如何配置与Laravel 5一起使用的MariaDB.

database mariadb

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

使用命名空间时找不到PHP类

我是这个命名空间的新手.

我在我的基本目录2类(单独的文件),说class1.phpclass2.php一个目录中src/.

class1.php

namespace \src\utility\Timer;

class Timer{
    public static function somefunction(){

    }
}
Run Code Online (Sandbox Code Playgroud)

class2.php

namespace \src\utility\Verification;
use Timer;

class Verification{
     Timer::somefunction();
}
Run Code Online (Sandbox Code Playgroud)

当我执行时class2.php,我得到致命错误

PHP致命错误:在路径//class2.php中找不到类'Timer'在第***行

我在某处看过,我需要为此创建自动加载器.如果是这样,我该如何创建一个,如果没有,那么还有什么问题呢?

UPDATE

我创建了一个Autoloader,它将require所有必需的文件放在我的PHP脚本之上.所以,现在class2.php会像这样结束.

namespace \src\utility\Verification;
require '/path/to/class1.php'
use Timer;
//or use src\utility\Timer ... both doesn't work.

class Verification{
     Timer::somefunction();
}
Run Code Online (Sandbox Code Playgroud)

这也行不通,它表明找不到类.但是,如果我删除了所有的namespaces,那use就是.一切正常.

php namespaces autoload spl-autoload-register

7
推荐指数
2
解决办法
2万
查看次数

如何使用Python Celery在不同服务器上执行任务?

假设我有三台服务器 A、B 和 C。服务器 C 将具有 celery 任务代码,我需要从服务器 A 和 B 执行它们。

从 celery文档中,我看到有一个task.py文件作为 celery 工作人员运行

from celery import Celery

app = Celery('tasks', broker='pyamqp://guest@localhost//')

@app.task
def add(x, y):
    return x + y
Run Code Online (Sandbox Code Playgroud)

然后我们有另一个 python 文件(假设client.py)调用这些任务。

from tasks import add

add.delay(4, 4)
Run Code Online (Sandbox Code Playgroud)

在这里我可以看到该client.py文件依赖于该tasks.py文件,因为它是tasktasks.py文件导入的。如果我们要在单独的服务器中运行这两个文件,我们需要将它们解耦并以某种方式调用任务,而无需导入代码。我不知道如何实现这一目标。那么,如何才能做到呢?

python celery

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

在PHP客户端无法获取aws lambda函数响应

我试图在文档中使用PHP作为指示调用一个简单的Aws Lambda函数,但我没有得到所需的响应.

PHP Lambda客户端

require './aws/aws-autoloader.php';
use Aws\Lambda\LambdaClient;

$client = LambdaClient::factory(array(
            'version' => "latest",
            'credentials' => array(
                'key' => '*******',
                'secret' => '*******'
            ),
            'region' => '*******'
        ));

$response = $client->invoke([
    'FunctionName' => 'myLambda', // REQUIRED
    'InvocationType' => 'RequestResponse',
    'Payload' => '{"key":"value"}',
        ]);

echo "<pre>";
print_r($response);
print_r($response->data);

?>
Run Code Online (Sandbox Code Playgroud)

Node.js Lambda函数 除了这个简单的代码,它在成功执行Lambda函数时返回"成功".它的工作在亚马逊Lambda控制台找到.

exports.handler = function(event, context){

    context.succeed("success");
};
Run Code Online (Sandbox Code Playgroud)

亚马逊的回复 我收到了一个我无法访问的私有数据对象.根据文档,Payload应该是函数的响应.但是,我得到一个Object,我无法访问,因为父对象数据是私有的.

Aws\Result Object
(
    [data:Aws\Result:private] => Array
        (
            [Payload] => GuzzleHttp\Psr7\Stream Object
                (
                    [stream:GuzzleHttp\Psr7\Stream:private] => Resource id #6
                    [size:GuzzleHttp\Psr7\Stream:private] => 
                    [seekable:GuzzleHttp\Psr7\Stream:private] => …
Run Code Online (Sandbox Code Playgroud)

php amazon-web-services node.js aws-lambda

6
推荐指数
2
解决办法
2083
查看次数

预测时如何处理测试数据中的 onehotencoding 后的类别不匹配?

如果问题的标题不是很清楚,我很抱歉,我无法用一句话概括问题。

以下是用于解释的简化数据集。基本上,训练集中的类别数量远大于测试集中的类别数量,因此 OneHotEncoding 后测试和训练集中的列数存在差异。我该如何处理这个问题?

训练集

+-------+----------+
| Value | Category |
+-------+----------+
| 100   | SE1      |
+-------+----------+
| 200   | SE2      |
+-------+----------+
| 300   | SE3      |
+-------+----------+
Run Code Online (Sandbox Code Playgroud)

OneHotEncoding后的训练集

+-------+-----------+-----------+-----------+
| Value | DummyCat1 | DummyCat2 | DummyCat3 |
+-------+-----------+-----------+-----------+
| 100   | 1         | 0         | 0         |
+-------+-----------+-----------+-----------+
| 200   | 0         | 1         | 0         |
+-------+-----------+-----------+-----------+
| 300   | 0         | 0         | 1         |
+-------+-----------+-----------+-----------+
Run Code Online (Sandbox Code Playgroud)

测试装置

+-------+----------+
| Value | Category |
+-------+----------+ …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn data-science

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

如何在不使用OAuth的情况下制作安全API?

我的要求

我正在制作一个也有移动版的网站.所以,我正在以API为中心.现在我想在没有OAuth复杂性的情况下使我的API安全,因为我需要的安全性非常简单.我不希望有权访问api链接的任何人能够访问我的数据.

所以,我遇到了这篇文章http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/这是非常惊人的,并且清除了我的大部分疑虑.

现在,我正在尝试重新创建文章中的任何内容.我正在使用Laravel 5框架进行PHP开发.

我想确保移动应用程序和Web版本仅使用API​​,而不是其他任何人.我见过像api这样的链接

example.com/fetchallinformation&publicKey=<something>&Hashkey?<some_hash_key>
Run Code Online (Sandbox Code Playgroud)

现在,我明白这个键是通过hash_hmac()在php中使用函数生成的.

我的方法

  • 我有一个表,我为我的api用户存储publicKey和privateKey
  • URL中的HashKey是通过在客户端散列privateKey和publicKey生成的,然后发送到服务器.因此,我将生成的Hash与publicKey一起发送到服务器.
  • 在服务器端,我使用publicKey和Hash.我从与publicKey对应的表中检索私钥并拥有它们并检查结果散列是否与客户端发送的散列相同
  • 如果它是相同的,那么我给他们许可,否则,我没有.

我的困惑

  • 我不确定这是否是正确的方法.

  • 我们可以hash_hmac()通过解密哈希来获取用于生成哈希的数据吗?

php security api hash amazon-web-services

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