小编Rhy*_*Guy的帖子

从此数组中仅选择唯一的数组值

我有以下变量$ rows:

阵列(

[0] => stdClass Object
    (
        [product_sku] => PCH20
    )

[1] => stdClass Object
    (
        [product_sku] => PCH20
    )

[2] => stdClass Object
    (
        [product_sku] => PCH19
    )

[3] => stdClass Object
    (
        [product_sku] => PCH19
    )
Run Code Online (Sandbox Code Playgroud)

)

我需要创建仅包含唯一值的第二个数组$ second:

阵列(

[0] => stdClass Object
    (
        [product_sku] => PCH20
    )

[1] => stdClass Object
    (
        [product_sku] => PCH19
    )
Run Code Online (Sandbox Code Playgroud)

)

但是当我在$ rows上运行array_unique时,我会收到:

可捕获的致命错误:类stdClass的对象无法在第191行转换为字符串

php arrays array-unique

13
推荐指数
3
解决办法
4万
查看次数

在Python中刮擦 - 防止IP禁令

我正在Python用来刮页.到现在为止,我没有任何复杂的问题.

我正在尝试抓取的网站使用了大量的安全检查,并有一些机制来防止抓取.

使用Requestslxml我在被IP禁止之前能够刮掉大约100-150页.有时我甚至会在第一次请求时被禁止(新的IP,之前没有使用,不同的C块).我试过使用欺骗标题,在请求之间随机化时间,仍然是相同的.

我尝试过Selenium,我得到了更好的结果.有了Selenium,在被禁止之前,我能够刮掉大约600-650页.在这里,我也尝试随机化请求(3-5秒之间,并time.sleep(300)在每300个请求上调用).尽管如此,我被禁止了.

从这里我可以得出结论,如果网站在一个打开的浏览器会话中请求超过X个页面或类似的东西,那么它们会禁止IP.

根据您的经验,我还应该尝试什么? 将在Selenium中关闭和打开浏览器帮助(例如在每100个请求关闭并打开浏览器之后).我正在考虑尝试使用代理,但是有大约数百万个页面,而且它将非常广泛.

python selenium screen-scraping web-scraping

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

以编程方式更改 to 退出节点(获取新 IP)

有没有办法,哪一个在 PHP 中更改 to 退出节点(获取新 IP)?

现在,我每 10 分钟左右就会获得一个新 IP。

<?php

// Initialize cURL
$ch = curl_init();

// Set the website you would like to scrape
curl_setopt($ch, CURLOPT_URL, "http://icanhazip.com/");
curl_setopt($ch, CURLOPT_USERAGENT, '');
curl_setopt($ch, CURLOPT_REFERER, '');
curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:8118');

 // Set cURL to return the results into a PHP variable
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// This executes the cURL request and places the results into a variable.
$curlResults= curl_exec($ch);

// Close curl
curl_close($ch);

// Echo the results to the screen>
echo $curlResults; …
Run Code Online (Sandbox Code Playgroud)

php curl tor

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

XPATH - 选择节点范围

我有以下代码:

<div id="mydiv">
    <h1>Some title</h1>
    <p>don't select me</p>
    <p>select me 1</p>
    <p>select me 2</p>
    <p>select me 3</p>
    <p>don't select me</p>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要选择p [2]到p [4].

尝试使用此代码,它不起作用:

'.//*[@id="mydiv"]/p[preceding-sibling::p[4] and following-sibling::p[2]]'
Run Code Online (Sandbox Code Playgroud)

php xpath

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

PHP - 从数组中删除空值

当前数组:

Array (
    [name] => Array (
        [name1] => Array (
            [0] => some value1
        )
        [name2] => Array (
            [0] => some value2
        )
        [name3] => Array (
            [0] =>
        )
) 
Run Code Online (Sandbox Code Playgroud)

通缉阵列:

Array (
    [name] => Array (
        [name1] => Array (
            [0] => some value1
        )
        [name2] => Array (
            [0] => some value2
        )
) 
Run Code Online (Sandbox Code Playgroud)

由于name3[0]不包含任何值,因此需要将其删除.从我读到的,我应该使用array_filter它,但我不能让它工作.

php arrays multidimensional-array

5
推荐指数
2
解决办法
6167
查看次数

CSS - Youtube 嵌入视频的 100% 宽度

HTML:

<div class="video">
  <iframe src="https://www.youtube.com/embed/bRhZUF47p2E?version=3&amp;rel=0&amp;controls=0&amp;showinfo=0&amp;autoplay=1&amp;mute=1&amp;loop=1" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.video {
  width: 100%;
  height: 200px;
  border: 1px solid red;
  overflow: hidden;
  position: relative;
}
iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

JSFIDDLE: http : //jsfiddle.net/pj2utq4v/

问题:如何强制 iframe 为父 div 宽度的 100%。由于父 div 的高度只有 200 像素,因此 iframe 视频将被裁剪,这对我来说也没有问题。

html css youtube youtube-iframe-api

5
推荐指数
2
解决办法
8944
查看次数

用于显示类别ID的文章的代码?

从类别(由ID指定)显示文章的代码是什么?

在Wordpress中,这样做非常简单:

<?php
   query_posts('cat=1');
   while (have_posts()) : the_post();
   the_title();
   endwhile;
?>
Run Code Online (Sandbox Code Playgroud)

我正在为Joomla寻找类似的代码.

joomla joomla2.5

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

Python - 查找字典元素的平均值

我有这样的字典:

dict = [{'a':2, 'b':3}, {'b':4}, {'a':1, 'c':5}]
Run Code Online (Sandbox Code Playgroud)

我需要获得所有不同键的平均值。结果应如下所示:

avg = [{'a':1.5, 'b':3.5, 'c':5}]
Run Code Online (Sandbox Code Playgroud)

我可以得到所有键的摘要,但我没有意识到如何计算相同的键以获得平均数。

python dictionary average

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

Joomla在类别页面上显示子类别图像?

除了创建另一个MYSQL连接之外,还有一种方法可以在浏览父类别页面时检索子类别图像吗?

例如:

  • 主要类别(设为博客类别)
    • 子类别1(基本选项图像字段中设置的图像)
    • 子类别2(基本选项图像字段中的图像集)
    • 子类别3(基本选项图像字段中的图像集)
    • ....

现在,当我浏览"主类别"时,它显示类别标题和子类别的描述,但我找不到任何"正常"方式来检索我在基本选项中设置的图像.

我可以做的唯一方法是创建另一个MYSQL调用并从数据库中检索图像,但我想知道是否还有另一种更有效的方法.

我使用Joomla 2.5.

谢谢!

joomla joomla-template

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

PHP/MYSQL - 无法找到此代码发送邮件超过两次的原因

好吧,我开始拉我的头发,我需要一些帮助:)

这是我的文件,用于选择用户激活的电子邮件并向他们发送某种新闻通讯.

newsletter.php的内容

<?php
//Include configuration file
include 'config/config.php'; 
$pdo = new PDO("mysql:host=localhost;dbname=$db", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

//Define messages
//Error messages
define('ERROR_MESSAGE_SUBJECT', 'Enter subject');
define('ERROR_MESSAGE_CONTENT', 'Enter some content');

//Define variables
$errorFlag = false;
$to = array();

//Grab variables
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $newsletterSubject = check_input($_POST['newsletterSubject']);
    $newsletterContent = $_POST['newsletterContent'];       

    if(!$newsletterSubject) {
        $errorSubject = ERROR_MESSAGE_SUBJECT;  
        $errorFlag = true;
    }
    if(!$newsletterContent) {
        $errorContent = ERROR_MESSAGE_CONTENT;
        $errorFlag = true;  
    }
}
?>
<form action="newsletter.php" method="post">
    <label>Naslov newsletter-a: <?php echo '<span class="error">'.$errorSubject.'</span>';?></label>
    <input type="text" …
Run Code Online (Sandbox Code Playgroud)

php mysql email

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