![](/img/trans.png)
[英]Using Scrapy Python not able to extract data from response html with xpath due to namespace
[英]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.