python - 从列表中抓取以提取键或值

标签 python scrapy

我是 python 的新手,在从列表中获取特定值或键时遇到了一些麻烦。

当我抓取的项目输出它的值(value)时,我有时会得到这样的返回。

第一个列表:

'image_urls': [u'http://www.websites.com/1.jpg',
                u'http://www.websites.com/2.jpg',
                u'http://www.websites.com/3.jpg'],

现在我已经通过更有针对性的 xpath 和按数字选择元素 [2] 来解决这个问题,但我真正的问题是这些从抓取的图像中返回

第二个列表:

'images': [{'checksum': '2efhz768djdzs76dz',
            'path': 'full/2efhz768djdzs76dz.jpg',
            'url': 'http://www.websites.com/1.jpg'},
           {'checksum': 'zadz764dhqj34dsjs',
            'path': 'full/zadz764dhqj34dsjs.jpg',
            'url': 'http://www.websites.com/2.jpg'}],

我正在使用 sqlite3 通过 item.get 存储我所有其他抓取的数据

item.get('image_urls','')

如何将值列表合并到字符串或根据其排名定位它? (第一个列表)

以及如何使用 item.get 获取校验和、路径和 url 的值? (第二个列表)

编辑:我仍在寻找第二个问题的解决方案:

这是输出:

'images': [{'checksum': '2efhz768djdzs76dz',
            'path': 'full/2efhz768djdzs76dz.jpg',
            'url': 'http://www.websites.com/1.jpg'},
           {'checksum': 'zadz764dhqj34dsjs',
            'path': 'full/zadz764dhqj34dsjs.jpg',
            'url': 'http://www.websites.com/2.jpg'}],

如何让第一个或第二个校验和进入 sqlite 列。 我目前使用:

item.get('scrapy-item','') 其中 spracy item 表示被抓取的项目的名称,最好在代码示例中。

最佳答案

基于排名的目标

x['image_urls'][0]

合并字典值列表

>>> images
[{'path': 'full/2efhz768djdzs76dz.jpg', 'url': 'http://www.websites.com/1.jpg', 'checksum': '2efhz768djdzs76dz'}, {'path': 'full/zadz764dhqj34dsjs.jpg', 'url': 'http://www.websites.com/2.jpg', 'checksum': 'zadz764dhqj34dsjs'}]
>>> list(map(lambda x : x['url'] + '/' + x['path'], images))
['http://www.websites.com/1.jpg/full/2efhz768djdzs76dz.jpg', 'http://www.websites.com/2.jpg/full/zadz764dhqj34dsjs.jpg']
>>> list(map(lambda x : x['checksum'], images))
['2efhz768djdzs76dz', 'zadz764dhqj34dsjs']

上面的代码应该让您大致了解如何处理数组和字典之间的转换。您也可以遍历整个数组并获取您的值,但我更喜欢 lambda 函数。

希望这对我不太熟悉 scrapy 有所帮助。因此,如果您仍然不确定某些事情,请发表评论。

关于python - 从列表中抓取以提取键或值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38810084/

相关文章:

python - 使用正则表达式从每行提取最后一个单词

python - Python 中的 PDFminer

regex - scrapy 和 xpath 函数 'matches' 语法

python - 具有多个 start_url 的 Scrapy-playwright

c++ - Boost 没有静态链接到 boost::python 共享对象

使用 RandomizedSearchCV 对 XGBClassifier 进行 Python 超参数优化

Python,遍历 url 列表来解析 html 内容

python - 无法使用Python和scrapy管道将数据插入MySQL

python - Scrapy 不下载图像并出现管道错误

python - 从亚马逊网站获取 href 链接时出现问题。 xpath 找到的 href 链接比预期多得多。