python - 在 python scrapy 中获取文本

标签 python scrapy web-crawler

我从网站获取此代码:

import scrapy

class BrickSetSpider(scrapy.Spider):
    name = "brickset_spider"
    start_urls = ['http://brickset.com/sets/year-2016']

    def parse(self, response):
        SET_SELECTOR = '.set'
        for brickset in response.css(SET_SELECTOR):

            NAME_SELECTOR = 'h1 a ::text'
            yield {
                'name': brickset.css(NAME_SELECTOR).extract(),
            }

我使用代码来爬取数据。这是我运行代码时的示例结果: ![enter image description here

名称是 extract() 方法的结果。这是检查元素(在 Chrome 中):

enter image description here

我想问一下,名字是10805的结果是:Around the World还是只有Around the World。如何做到这一点?

最佳答案

要获得“10805:环游世界”,请将产量更改为:

 yield {
            'name': " ".join(brickset.css(NAME_SELECTOR).extract()),
        }

要获得“环游世界”,请将产量更改为:

yield {
            'name': brickset.css(NAME_SELECTOR).extract()[-1],
        }

关于python - 在 python scrapy 中获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44945032/

相关文章:

python - Scrapy - 保存项目并解析新网址

python - 我如何有条件地重试并重新抓取 Scrapy 中的当前页面?

python - 使用多线程的基本套接字聊天程序会引发错误

python - Scrapy 无法正确收集电子邮件

Python以分钟为单位减去两个日期

asp.net - 抓取由 asp.net/AJAX (__doPostBack) 管理的 html 分页

python - 在 Python 中查找 beautifulsoup 的链接

java - 如何自定义 Apache Nutch 2.3 生成步骤

python - 为什么非默认参数不能跟随默认参数?

python - 如何在 Python 中将整个列表作为命令行参数传递?