簡體   English   中英

嘗試使用python / scrapy提取數據,但無法找到正確的xpath

[英]Trying to extract data using python/scrapy and not able to find the correct xpath

我想刮掉網站。

https://stackoverflow.com/jobs?med=site-ui&ref=jobs-tab

我想提取

  • 標題
  • 位置
  • 公司

的職位發布。

我嘗試了幾個xpath的位置,公司和標題,沒有任何工作。 我還嘗試將其寫入CSV文件。 所有位置,公司和標題都是空白。 我認為我的xpath不正確

import scrapy


class JobItem(scrapy.Item):
    # Data structure to store the title, company name and location of the job
    title = scrapy.Field()
    company = scrapy.Field()
    location = scrapy.Field()

class stackoverflow(scrapy.Spider):
    name = 'stack_bot'
    start_urls = ['https://stackoverflow.com/jobs?med=site-ui&ref=jobs-tab']

    def parse(self, response):
        for a_el in response.xpath('//div[@class="listResults"]'):
            section = JobItem()
            section['title']   = ?
            section['company'] = ?
            section['location'] = ?
            yield section

任何人都可以幫我找到標題,公司和位置的xpath。 xpath('//div[@class="listResults"]')也是正確的。

我不確定xpath('//div[@class="listResults"]')是否正確。 它只給出一個元素。 這是我的代碼版本:

def parse(self, response):
    for a_el in response.xpath('//div[contains(@class, "-job-summary")]'):
        section = JobItem()
        section['title']   = a_el.css('h2 a::text').get()
        section['company'] = a_el.xpath('.//div[contains(@class, "-company")]/span[1]/text()').get()
        section['location'] = a_el.xpath('.//div[contains(@class, "-company")]/span[2]/text()').get()
        yield section

考慮使用RSS提要作為源,因為隨着時間的推移這將更加健壯

https://stackoverflow.com/jobs/feed

然后,您可以使用以下css選擇器生成可以列出的列表(zip())

標題選擇器: item title

公司選擇: a10\\:author

位置: location

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM