Python刮片意外缩进错误
我们试图抓取诸如“产品”、“价格”等项目,但我们不断得到缩进错误 我们正在使用的代码(crawlproduct.py): 和items.py:Python刮片意外缩进错误,python,scrapy,Python,Scrapy,我们试图抓取诸如“产品”、“价格”等项目,但我们不断得到缩进错误 我们正在使用的代码(crawlproduct.py): 和items.py: from scrapy.item import Item, Field class ProductCrawlItem(Item): product = Field() price = Field() stock = Field() link = Field() 当我们只使用1个字
from scrapy.item import Item, Field
class ProductCrawlItem(Item):
product = Field()
price = Field()
stock = Field()
link = Field()
当我们只使用1个字段时,它确实有效。。。
有人知道这个问题吗
提前感谢,
Dean使用以下缩进,这可能是您想要的:
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from productcrawl.items import ProductCrawlItem
class MySpider(BaseSpider):
name = "crawlproduct"
allowed_domains = ["yorcom.nl"]
f = open("items.txt")
start_urls = [url.strip() for url in f.readlines()]
f.close()
def parse(self, response):
hxs = HtmlXPathSelector(response)
events = hxs.select("//div[@class='productOverview']")
items = []
for event in events:
item = ProductCrawlItem()
item ["product"] = events.select("table/tbody/tr/td[@class='productTitle']/a/text()").extract()
item ["price"] = events.select("table/tbody/tr/td[@class='productPrice']/a/text()").extract()
item ["stock"] = events.select("table/tbody/tr/td[@class='productStock voorraad']/a/text()").extract()
item ["link"] = events.select("table/tbody/tr/td[@class='productTitle']/a").extract()
yield item
你在某处混合了空格和制表符。我们无法在这里帮助您,因为您的缩进在您的问题中不正确。只需打开一个编辑器,检查您自己为每行添加了多少空格或制表符,而不是使用SO.IndentationError来增加开销?为什么不在尝试使用框架之前先学习语言的基础知识呢?我不是故意苛刻,但真的。
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from productcrawl.items import ProductCrawlItem
class MySpider(BaseSpider):
name = "crawlproduct"
allowed_domains = ["yorcom.nl"]
f = open("items.txt")
start_urls = [url.strip() for url in f.readlines()]
f.close()
def parse(self, response):
hxs = HtmlXPathSelector(response)
events = hxs.select("//div[@class='productOverview']")
items = []
for event in events:
item = ProductCrawlItem()
item ["product"] = events.select("table/tbody/tr/td[@class='productTitle']/a/text()").extract()
item ["price"] = events.select("table/tbody/tr/td[@class='productPrice']/a/text()").extract()
item ["stock"] = events.select("table/tbody/tr/td[@class='productStock voorraad']/a/text()").extract()
item ["link"] = events.select("table/tbody/tr/td[@class='productTitle']/a").extract()
yield item