小编Chr*_*ris的帖子

Scrapy:通过管道发送到数据库时包含带有 404 状态代码的项目

在 python 2.x 环境中使用 Scrapy,我设置了一个爬虫来抓取网页列表,特别是查看是否有任何页面产生错误,例如 400/404/500。

我编写了scrapy 项目,目的是通过管道将所有抓取的结果存储在mysql 数据库中。它有效!我能够成功写入我的数据库。但仅限于成功抓取的页面,HTTP 状态代码为 200。

Scrapy 似乎没有通过管道将 404 页上的信息发送到数据库中。

下面是从蜘蛛的代码中提取的,它抓取了两个不存在的网页:

class LandingPage004Spider(scrapy.Spider):
name='LandingPage004Spider'
start_urls = []

def __init__(self):
    super(LandingPage004Spider,self).__init__()
    #self.start_urls = unique_landingpages
    self.start_urls = ['https://www.google.com/doesntexist', 'https://www.google.com/deadpage']

def parse(self, response):
    url = response.url
    url_title = 'Title goes here.'
    pagesize = len(response.body)
    HTTP_code = response.status
    yield {'url': url, "pagesize": pagesize, "HTTP_code": HTTP_code}
Run Code Online (Sandbox Code Playgroud)

当我运行这个蜘蛛时,我得到以下输出:

[scrapy] DEBUG: Ignoring response <404 https://www.google.com/deadpage>: HTTP status code is not handled or not allowed
[scrapy] DEBUG: Ignoring response <404 https://www.google.com/doesntexist>: HTTP status …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy scrapy

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

用于回声的PHP数组

我无法尝试回显数组特定部分的每次迭代.

这是线索.我不能把它们拼凑起来(因为我还不太了解php数组).

如果我执行以下操作:

<?php
$audiofile = simple_fields_value("audiofile");
echo $audiofile['url'];
?>
Run Code Online (Sandbox Code Playgroud)

我得到了文件的URL,这就是我想要的.但是,我有四个不同的URL(一个"二维数组",我相信?),我想回应它们中的每一个.

根据Simple Fields文档,我知道我需要将第二行更改为:

$audiofile = simple_fields_values("audiofile");
Run Code Online (Sandbox Code Playgroud)

这导致我改变php如下:

<?php
$audiofile = simple_fields_values("audiofile");
for($i=0;$i<count($audiofile);$i++)
{
echo $audiofile[$i];
}
?>
Run Code Online (Sandbox Code Playgroud)

但这只能回应"ArrayArrayArrayArray".

这是有道理的,因为$ audiofile正在返回一个信息数组,FROM WHICH我只想要['url'].

所以,我尝试了以下内容:

<?php
$audiofile = simple_fields_values("audiofile");
for($i=0;$i<count($audiofile);$i++)
{
echo $audiofile['url'][$i];
}
?>
Run Code Online (Sandbox Code Playgroud)

但那回声无效.

有任何想法吗?

php arrays multidimensional-array

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