Я новичок в scrapy, но некоторое время использую python. Я извлек урок из документации scrapy
вместе с селекторами xpath
. Теперь я хотел бы превратить знания, чтобы сделать небольшой проект. Я пытаюсь удалить job links and the associated info like job title, location, emails (if any), phone numbers (if any)
с доски объявлений https://www.germanystartupjobs.com/
с помощью скрейпа.
У меня есть этот стартовый код,
import scrapy
class GermanSpider(scrapy.Spider):
# spider name
name = 'germany'
# the first page of the website
start_urls= ['https://www.germanystartupjobs.com/']
print start_urls
def parse(self, response):
pass
def parse_detail(self, response):
pass
и запустит паука scrapy runspider germany
Внутри функции parse
я хотел бы получить href
s и детали внутри функции parse_detail
.
Когда я открыл упомянутую страницу с chrome
инструментами разработчика и просмотрел перечисленные задания, я увидел, что все задания находятся внутри этого ul
<ul id="job-listing-view" class="job_listings job-listings-table-bordered">
а затем отдельные задания перечислены во множестве внутри divs
<div class="job-info-row-listing-class">
со связанной информацией, например, href
находится внутри <a href="https://www.germanystartupjobs.com/job/foodpanda-berlin-germany-2-sem-manager-mf/">
Другое divs
указывает должность, название компании, местонахождение и т. д. с divs
, например
<div>
<h4 class="job-title-class">
SEM Manager (m/f) </h4>
</div>
<div class="job-company-name">
<normal>foodpanda<normal> </normal></normal></div>
</div>
<div class="location">
<div class="job-location-class"><i class="glyphicon glyphicon-map-marker"></i>
Berlin, Germany </div>
</div>
Первым шагом будет получение href
с помощью функции parse
, а затем соответствующей информации внутри parse_details
с помощью response
. Я обнаружил, что номера email
и phone
предоставляются только тогда, когда вы открываете ссылки из href
, но заголовок и местоположение указываются внутри текущего divs
той же страницы.
Как я уже упоминал, у меня хорошие навыки программирования на python, но я борюсь с использованием xpath
даже после того, как у меня есть этот руководство. Как найти ссылки и сопутствующую информацию? Некоторый пример кода с небольшим объяснением очень поможет.
Я пытаюсь использовать код
# firstly
for element in response.css("job-info-row-listing-class"):
href = element.xpath('@href').extract()[0]
print href
yield scrapy.Request(href, callback=self.parse_detail)
# secondly
values = response.xpath('//div[@class="job-info-row-listing-class"]//a/text()').extract()
for v in values:
print v
#
values = response.xpath('//ul[@id="job-listing-view"]//div[@class="job-info-row-listing-class"]//a/text()').extract()
Кажется, они пока ничего не возвращают после запуска паука с помощью scrapy runspider germany