Warum bekomme ich den Text nicht? Ich habe dieses Skript auf vielen Websites verwendet und bin nie auf dieses Problem gestoßen.Text nicht sichtbar Python
import scrapy.selector
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from Prijsvergelijking_Final.items import PrijsvergelijkingFinalItem
vendors = []
for line in open("vendors.txt", "r"):
vendors.append(line.strip("\n\-"))
e = {}
for vendor in vendors:
e[vendor] = True
class ArtcrafttvSpider(CrawlSpider):
name = "ARTCRAFTTV"
allowed_domains = ["artencraft.be"]
start_urls = ["https://www.artencraft.be/nl/beeld-en-geluid/televisie"]
rules = (Rule(LinkExtractor(allow=(), restrict_xpaths=('//li[@class="next"]',)), callback = "parse_start_url",follow = True),)
def parse_start_url(self, response):
products = response.xpath("//ul[@class='product-overview list']/li")
for product in products:
item = PrijsvergelijkingFinalItem()
item["Product_a"] = product.xpath(".//a/span/h3/text()").extract_first().strip().replace("-","")
item["Product_price"] = product.xpath(".//a/h4/text()").extract_first()
for word in item['Product_a'].split(" "):
if word in e:
item['item_vendor'] = word
yield item
Webseite Code:
Ergebnisse nach Skript ausgeführt wird:
Irgendwelche Vorschläge, wie ich dieses Problem lösen kann?
Sie über den Preis reden? – Tony
Ja, ich spreche über die Preise – Wouter
@Wouter: Versuchen Sie einen anderen XPath für den Preis, wie '.// a/h4/(/ text()) [last()]' – Blender