Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 18, 2014 14:28:37

bor1k_by
Зарегистрирован: 2014-10-18
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

парсинг сайта на scrapy

Всем доброго дня. возникла проблема по парсингу сайта на scrapy .
сайт,который нужно распарсить
сайт

вот мой код

from scrapy.spider import Spider
from scrapy.selector import Selector
from scrapy.http import Request
from workopolis.items import Node
import time
import re
class apply(Spider):
	name = "apply_spider"
	lang = ''
	rowFrom = ''
	location = ''
	title = ''
	city = ''
	description = ''
	category = ''
	job_id = ''
	driver = None
	start_urls = [
		'https://apply.firstgroupcareers.com/vacancy/find/results/'
		]
	
	url_app = 'https://apply.firstgroupcareers.com/vacancy/jobecode/description/'
	def parse(self, response):
		
		hxs = Selector(response)
		
		jobs = hxs.xpath('//*[@class="rowContainerHolder"]')
		items = []
		
		for job in jobs:
			item = Node()
			x = job
		
		item['title'] = hxs.xpath("string(.//*[contains(@class,'rowHeader')])").extract()[0]
		url = html.xpath("string(.//*[contains(@class,'rcMenu')]//a").extract()[0]
		item['job_id'] = re.search('jobId=([0-9]+)', url).groups()[0]
		item['apply_url'] = self.url_app.replace('jobecode',item['job_id'])
		g = item['title'].split('-')
		item['title'] = g[1]
		item['city'] = g[0]
						
					
		print	item['apply_url']
					
		d_url = item['apply_url']
				
				
					
		request = Request(d_url, callback=self.parse_details)
		request.meta['item'] = item
		items.append(request)
				
		for item in items:
			
			yield item
	def parse_details(self,response):
		html = Selector(response)
		item = response.meta['item']
		item['description'] = html.xpath(".//*[contains(@class,'earcu_posdescriptionnote')]").extract()[0]
		item['language'] = 'en'
		item['state'] = html.xpath(".//*[contains(@class,'jobSumValue')]").extract()[0]
		
		
		
		
		return item

до этого пользовался силениум питоном и использовал webdriver, а на этом сайте ссылка не яваскрипт и нужно сделать без него,а также контент сайта содержится не в таблице ,а в дивах.
а также не знаю как вынуть из сайта job_id (из самой ссылки). вообщем,если кто понимает в этом,посмотрите ,пожалуйста

Отредактировано bor1k_by (Окт. 18, 2014 14:35:55)

Офлайн

#2 Окт. 23, 2014 01:37:42

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

парсинг сайта на scrapy

хорошо смотрим на код и видем класс с 2 вложенными функчиями, дальше ты собираешь данные и должен произвести split по признаку <div></div> правильно тебя понял ?

Офлайн

#3 Ноя. 17, 2014 18:06:39

den4ik
Зарегистрирован: 2014-07-20
Сообщения: 59
Репутация: +  4  -
Профиль   Отправить e-mail  

парсинг сайта на scrapy

ТС, читаем про selenium и phantomjs

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version