gpt4 book ai didi

python - 用 scrapy 抓取

转载 作者:太空宇宙 更新时间:2023-11-04 01:16:56 25 4
gpt4 key购买 nike

我正在尝试使用 scrapy 进行更深入的挖掘,但只能获得我正在抓取的内容的标题,而不能获得任何细节。这是我到目前为止的代码:

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from tcgplayer1.items import Tcgplayer1Item

class MySpider(BaseSpider):
name = "tcg"
allowed_domains = ["http://www.tcgplayer.com/"]
start_urls = ["http://store.tcgplayer.com/magic/journey-into-nyx?PageNumber=1"]

def parse(self, response):
hxs = HtmlXPathSelector(response)
titles = hxs.select("//div[@class='magicCard']")
vendor = hxs.select("//tr[@class='vendor']")
items = []

for titles in titles:
item = Tcgplayer1Item()
item ["cardname"] = titles.select("//li[@class='cardName']/a/text()").extract()
item ["price"] = vendor.select("//td[@class='price']/br/text()").extract()
item ["quantity"] = vendor.select("//td[@class='quantity']/td/text()").extract()
items.append(item)
return items

我无法获得显示任何结果的价格和数量。每张卡都有几个供应商,每个供应商都有自己的价格和数量。我认为那是我遇到问题的地方。任何帮助将不胜感激。

最佳答案

首先,这是代码的固定版本:

from scrapy.spider import BaseSpider
from scrapy.selector import Selector
from tcgplayer1.items import Tcgplayer1Item


class MySpider(BaseSpider):
name = "tcg"
allowed_domains = ["http://www.tcgplayer.com/"]
start_urls = ["http://store.tcgplayer.com/magic/journey-into-nyx?PageNumber=1"]

def parse(self, response):
hxs = Selector(response)
titles = hxs.xpath("//div[@class='magicCard']")
for title in titles:
item = Tcgplayer1Item()
item["cardname"] = title.xpath(".//li[@class='cardName']/a/text()").extract()[0]

vendor = title.xpath(".//tr[@class='vendor ']")
item["price"] = vendor.xpath("normalize-space(.//td[@class='price']/text())").extract()
item["quantity"] = vendor.xpath("normalize-space(.//td[@class='quantity']/text())").extract()
yield item

代码存在多个问题:

  • vendor 类名需要包含尾随空格:“vendor”——很难找到
  • 每个项目有多个供应商 - 您需要在循环内定义 vendor
  • 你正在循环中重新定义 titles 变量
  • 循环中的xpath表达式应该是相对的.//
  • 使用 Selector 而不是弃用的 HtmlXPathSelector
  • 使用 xpath() 而不是弃用的 select()
  • 使用 normalize-space() 消除 pricequantity xpaths 中的换行符和额外空格

关于python - 用 scrapy 抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23895697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com