1 回答

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
您的選擇器工作正常。SET_SELECTOR不過,它不是 Scrapy 特定的變量。您可以隨意調(diào)用它,甚至可以將選擇器字符串直接放在函數(shù)調(diào)用中。這也不是什么都不返回的原因。
它什么都不返回,因?yàn)槟銢]有指示它返回任何東西。在您當(dāng)前的代碼中,它將找到每個(gè)作業(yè)部分(在for循環(huán)中),但隨后您告訴它什么都不做 ( pass)。
以下是它為每個(gè)工作獲取公司的示例:
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)添加了一個(gè)默認(rèn)值'',這樣就不會(huì)引發(fā)錯(cuò)誤。get()strip()
但是,我建議您先閱讀官方 Scrapy 教程,因?yàn)槟鄙俚牟糠謱⒃诖颂庍M(jìn)行說明:https ://docs.scrapy.org/en/latest/intro/tutorial.html
添加回答
舉報(bào)