#scrapy
#scrapy
Вопрос:
Я написал простой scrape с использованием scrapy, но он продолжает возвращать первый экземпляр целевых данных вместо правильных данных в каждой строке из каждого экземпляра целевых данных. В этом случае он возвращает первую ссылку для всех очищенных заданий с веб-сайта Indeed вместо правильной ссылки для каждого задания.
Я пробовал как использовать (div), так и избегать (.//div) абсолютных путей, а также использовать [0] в конце строки. Без [0] он возвращает все данные из всех строк в каждой ячейке.
Ссылка на пример исходных данных; https://www.indeed.co.uk/jobs?as_and=aamp;as_phr=amp;as_any=amp;as_not=IT constructionamp;as_ttl=Project Manageramp;as_cmp=amp;jt=contractamp;st=amp;salary=£30K-£460Kamp;radius=25amp;fromage=2amp;limit=50amp;sort=dateamp;psf=advsrch
Целевые данные: href=»/rc/clk?jk= 56e4f5164620b6daamp;fccid= 6920a3604c831610amp;vjs = 3″
Целевые данные со страницы
<div class="title">
<a target="_blank" id="jl_56e4f5164620b6da" href="/rc/clk?jk=56e4f5164620b6daamp;amp;fccid=6920a3604c831610amp;amp;vjs=3" onmousedown="return rclk(this,jobmap[0],1);" onclick=" setRefineByCookie(['radius', 'jobtype', 'salest']); return rclk(this,jobmap[0],true,1);" rel="noopener nofollow" title="Project Manager" class="jobtitle turnstileLink " data-tn-element="jobTitle">
<b>Project</b> <b>Manager</b></a>
Вот мой код
def parse(self, response):
titles = response.css('div.jobsearch-SerpJobCard')
items = []
for title in titles:
item = ICcom4Item()
home_url = ("http://www.indeed.co.uk")
item ['role_title_link'] = titles.xpath('div[@class="title"]/a/@href').extract()[0]
items.append(item)
return items
Мне просто нужна правильная ссылка для каждого задания. Приветствуется любая помощь!
Ответ №1:
Проблема в строке ниже:
item ['role_title_link'] = titles.xpath('div[@class="title"]/a/@href').extract()[0]
Вместо titles.xpath
этого вы должны использовать title.xpath
, как показано ниже:
item ['role_title_link'] = title.xpath('div[@class="title"]/a/@href').extract()[0]
Затем ваш код очистит ссылку для каждого задания, как вы хотите.
Комментарии:
1. Большое вам спасибо, mthrsj, вот и все! Извините, что беспокоил вас такой небольшой проблемой с вашей точки зрения. Я работал над этим часами 🙁
2. Добро пожаловать @Jamwg! Не волнуйтесь, это случается иногда!