这是代码,它没有从页面收集数据,我不知道为什么, Vscode : SyntaxError: 'yield' 外部函数 和 jupyter notebook 没有任何错误。
class multiSpider(scrapy.Spider):
name='multiple'
start_url = [
'https://forum.moshaver.co/f232/',
'https://forum.moshaver.co/f233/',
'https://forum.moshaver.co/f241/',
'https://forum.moshaver.co/f231/',
]
def parse(self, response):
for data in response.css('h3.threadtitle'):
yield {
'title': data.css('h3.threadtitle :: text').get(),
'answers' : data.css('threadstats td alt :: text').get(),
'writer' : data.css ('a.username offline popupctrl :: text').get(),
'date_time' : data.css('span.label a::text').get(),
}
next_page = response.css('span.selected pageitem a::attr(href)').get()
if next_page:
next_page = response.urljoin('next_page')
yield scrapy.Request (url= next_page, callback = self.parse)
我看到他们唯一的问题是这个对象中的右括号缩进了 3 个空格而不是 4 个空格,这可能是你在 vscode 中遇到问题但在 jupyter 中没有问题的原因
yield {
'title': data.css('h3.threadtitle :: text').get(),
'answers' : data.css('threadstats td alt :: text').get(),
'writer' : data.css ('a.username offline popupctrl :: text').get(),
'date_time' : data.css('span.label a::text').get(),
}
next_page = response.css('span.selected pageitem a::attr(href)').get()
如果您正在寻找更准确的建议,请分享完整的错误信息。 此外,您似乎有两个不同的问题: