我是Scrapy和python的新手,当我尝试从www.example.com导入VS代码中的类时,我得到了以下错误:items.py in VS Code I get the following error:
Exception has occurred: ModuleNotFoundError
No module named 'scraper.items'; 'scraper' is not a package
我的文件夹结构:Folder structure
教程我试图遵循:https://www.youtube.com/watch?v=wyE4oDxScfE
- scraper.py**代码:
import scrapy
from scrapy.crawler import CrawlerProcess
from scrapy.loader import ItemLoader
from scraper.items import ScraperItem
class ScrapySpider(scrapy.Spider):
name = 'scraper'
def start_requests(self):
yield scrapy.Request('https://www.thewhiskyexchange.com/c/639/bourbon-whiskey')
def parse(self, response):
Item = ScraperItem()
products = response.css('li.product-grid__item')
for item in products:
Item['name'] = item.css('p.product-card__name::text').get().strip(),
Item['price'] = item.css('p.product-card__price::text').get().strip().replace('£', ''),
Item['perL'] = item.css('p.product-card__unit-price::text').get().strip().replace('per litre', 'per L').replace('(', '').replace(')', '')
yield item
for x in range(2, 7):
yield(scrapy.Request(f'https://www.thewhiskyexchange.com/c/639/bourbon-whiskey?pg={x}', callback=self.parse))
process = CrawlerProcess(settings = {
'FEED_URI': 'whiskey.csv',
'FEED_FORMAT': 'csv'
})
process.crawl(ScrapySpider)
process.start()
- 项目. py**代码:
import scrapy
class ScraperItem(scrapy.Item):
name = scrapy.Field()
price = scrapy.Field()
perL = scrapy.Field()
当我使用:
..items import ScraperItem
我得到同样的错误
1条答案
按热度按时间tcomlyy61#
导入需要相对于执行目录。2我的猜测是scraper.scraper.item将工作。