![](/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.