亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Scrapy 沒有返回結果

Scrapy 沒有返回結果

慕碼人8056858 2021-11-09 17:05:00
    我是scrapy的新手。我正在嘗試為我正在從事的項目抓取 Indeed 的工作網站。我正在慢慢學習如何使用谷歌瀏覽器檢查抓取的語法,然后點擊 control-f。我跟著本教程:https://www.digitalocean.com/community/tutorials/how-to-crawl-a-web-page-with-scrapy-and-python-3我基本上無法獲得每頁 16 個列表。我可以看到它通常以“//span[@class="company"]/a/text()到目前為止,這是我的代碼:import scrapyclass 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):            pass這沒有任何回報。我希望有 16 行,所以我的 SET_SELECTOR 不正確。幫助將不勝感激!
查看完整描述

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


查看完整回答
反對 回復 2021-11-09
  • 1 回答
  • 0 關注
  • 399 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號