1 回答
TA贡献1893条经验 获得超10个赞
您的选择器工作正常。SET_SELECTOR不过,它不是 Scrapy 特定的变量。您可以随意调用它,甚至可以将选择器字符串直接放在函数调用中。这也不是什么都不返回的原因。
它什么都不返回,因为你没有指示它返回任何东西。在您当前的代码中,它将找到每个作业部分(在for循环中),但随后您告诉它什么都不做 ( pass)。
以下是它为每个工作获取公司的示例:
import scrapy
class IndeedSpider(scrapy.Spider):
name='indeed_jobs'
start_urls = ['https://www.indeed.com/jobs?q=software%20engineer&l=Portland%2C%20OR']
def parse(self, response):
SET_SELECTOR = '.jobsearch-SerpJobCard'
for jobListing in response.css(SET_SELECTOR):
# Yield is necessary to return scraped data.
yield {
# And here you get a value from each job.
'company': jobListing.xpath('.//span[@class="company"]/a/text()').get('').strip()
}
注意.//在 XPath 开头的使用。原因在文档中。而且我还为缺少该字段(docs)添加了一个默认值'',这样就不会引发错误。get()strip()
但是,我建议您先阅读官方 Scrapy 教程,因为您缺少的部分将在此处进行说明:https ://docs.scrapy.org/en/latest/intro/tutorial.html
添加回答
举报