Platform: Windows 10. IDE: v.s. code Python version: 3.12.1 Scrapy version: 2.11.0
我使用终端生成了一个 scrapy 项目:
scrapy startprojet NewScrapyProject
之后我转到 items.py 文件并修改现有项目:
import scrapy
class MyItem(scrapy.Item):
field1 = scrapy.Field()
field2 = scrapy.Field()
然后我在 new_síder.py 文件中的 Spiders 文件夹中创建了一个新的蜘蛛,为其命名,导入该项目,定义解析方法,并创建蜘蛛的实例:
from NewScrapyProject.items import MyItem
from scrapy.spiders import CrawlSpider
class NewSpider(CrawlSpider):
name='my_spyder'
def parse(self, response):
item = MyItem()
item['field1'] = response.xpath('//div[1]//ul/li').get()
item['field2'] = response.xpath('//div[1]//ul//li[2]').get()
yield item
spider = NewSpider()
print(spider.name)
(这里不要混淆,scrapy会生成一个根文件夹和里面的一个包,两者同名)
最后,我只是点击播放,看看到目前为止是否一切正常。但是:
Traceback (most recent call last):File"c:\Users\USER\Documents\pythonProjects\NewScrapyProject\NewScrapyProject\spiders\new_spider.py", line 1, in <module>from NewScrapyProject.items import MyItemModuleNotFoundError: No module named 'NewScrapyProject'
我更改了文件和文件夹名称,清除了缓存,更改为 python 3.10.2,相对导入(来自 ..items)...
我才刚刚开始,无法超越!帮忙!
我只需在项目的根文件夹中创建一个“.py”文件(随意命名)。我只是剪切代码来实例化一个新的蜘蛛并从它所在的位置打印它的名称,然后将其粘贴到这个新文件中。像这样:
if __name__ == '__main__':
spider = NewSpider()
print(spider.name)
不要忘记导入 NewSpider 类