【发布时间】:2021-05-12 06:57:42
【问题描述】:
我开始使用 Scrapy,并设法提取了一些我需要的数据。但是,并非所有内容都正确获得。我正在应用从here 找到的官方教程中的知识,但它不起作用。我用谷歌搜索了一下,还阅读了this SO question,但我相当确定这不是问题所在。
无论如何,我正在尝试解析来自this webshop 的产品信息。我正在尝试获取产品名称、价格、rrp、发布日期、类别、宇宙、作者和出版商。这是一种产品的相关 CSS:https://pastebin.com/9tqnjs7A。这是我的代码。最后带有#! 的所有内容都没有按预期工作。
import scrapy
import pprint
class ForbiddenPlanetSpider(scrapy.Spider):
name = "fp"
start_urls = [
'https://forbiddenplanet.com/catalog/?q=mortal%20realms&sort=release-date&page=1',
]
def parse(self, response):
for item in response.css("section.zshd-00"):
print(response.css)
name = item.css("h3.h4::text").get() #!
price = item.css("span.clr-price::text").get() + item.css("span.t-small::text").get()
rrp = item.css("del.mqr::text").get()
release = item.css("dd.mzl").get() #!
category = item.css("li.inline-list__item::text").get() #!
universe = item.css("dt.txt").get() #!
authors = item.css("a.SubTitleItems").get() #!
publisher = item.css("dd.mzl").get() #!
pprint.pprint(dict(name=name,
price=price,
rrp=rrp,
release=release,
category=category,
universe=universe,
authors=authors,
publisher = publisher
)
)
我想我需要添加一些子搜索(例如,目前 release 和 publisher 具有相同的条件),但我不知道如何用词来搜索它(我试过了,但是最终得到了不涵盖它的通用教程)。任何指出我正确方向的东西都值得赞赏!
哦,我没有包含 ' ' 空格,因为每当我使用一个 Scrapy 时都会立即找不到。
【问题讨论】:
标签: python html python-3.x scrapy web-crawler