我想抓取该网站。
https://stackoverflow.com/jobs?med=site-ui&ref=jobs-tab
我要提取
职位发布
。我尝试了几个xpath作为位置,公司和标题,但没有任何作用。我也尝试将其写入CSV文件。所有位置,公司和标题都为空白。我认为我的xpath不正确
A
任何人都可以通过标题,公司和位置的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
也是正确的。
答案 0 :(得分:0)
我不确定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
答案 1 :(得分:0)
考虑使用RSS feed作为源,因为随着时间的推移,它会变得更强大
https://stackoverflow.com/jobs/feed
然后,您可以使用以下CSS选择器来生成可以一起列出(zip())的列表
标题选择器:item title
公司选择器:a10\:author
位置:location