2016-12-18 4 views
0

Я работаю над небольшим проектом по очистке данных и хотел бы получить все вакансии с сайта https://www.germanystartupjobs.com/. Работы загружаются как запрос POST. Я могу зайти на отдельные страницы и получить cURL запросов POST и играть в терминале и получить JSON. JSON я получаю иметь следующий формат (я при условии, что я получаю от Firefoxnetwork tab, локон также предоставляет те же в терминале),Как получить ответы cURL для разных страниц?

enter image description here

Теперь, все, что мне нужно, что внутри html tag и я могу перебирать href с на что соответствующие страницы с помощью фрагмента кода,

html = data['html'] 
    selector = scrapy.Selector(text=data['html'], type="html") 
    hrefs = selector.xpath('//a/@href').extract() 
    for href in hrefs: 
     // some code 

я использую scrapy и конвенции заключается в использовании start_urls список для соскабливания страниц, а затем, я могу поместить все коды внутри parse функционирует так, как мне нравится.

Вот еще одна проблема. На соответствующем веб-сайте имеется 17 страниц, а ссылка 1-й страницы - https://www.germanystartupjobs.com/, а остальные страницы имеют одинаковую ссылку https://www.germanystartupjobs.com/#s=1. Итак, вы действительно не можете сказать, на какой странице вы находитесь по ссылке: может быть 3 или 9, я просто не знаю.

Резюмируя вопрос, я бы я получаю эту html = data['html'] значения для всех 17 страниц с помощью Python, где у меня есть только 2 вебов-ссылка: https://www.germanystartupjobs.com/ и https://www.germanystartupjobs.com/#s=1?

ответ

1

Если вы посмотрите на таблицу -tab на своей сетевой панели, вы должны увидеть разные параметры для запроса. Страница, на которой вы находитесь, находится на этой вкладке.

Вы можете передать этот параметр в своем запросе (так что в вашем yield scrapy.Request), чтобы вы перебирали номера страниц, передавая их в свой запрос. Например, вы можете сделать один запрос, чтобы получить максимальные номера страниц (max_num_pages в объекте JSON), а затем постепенно передавать номера страниц до тех пор, пока вы не запросите их все.

Оформить заявку documentation по запросам.

+0

Благодарим за информацию. Я постараюсь скоро вернуться к вам. Если это сработает, я приму этот ответ. Вверх проголосовали на данный момент, поскольку кажется хорошим ответом – Chak

+0

Здравствуйте, не могли бы вы предоставить мне код для перебора по всем страницам? Я все еще не мог заставить его работать должным образом. – Chak

+0

В любом случае, я принимаю ваш ответ здесь. – Chak

Смежные вопросы