Scrapy Spider возвращает только пробелы - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь очистить данные со следующего URL:

https://www.cheyennecity.org/Jobs.aspx?UniqueId=86&From=Professional-86&CommunityJobs=False&JobID=Senior-Planning-Technician-MPO-933

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

Когда я использую response.css('#divSideBar div h3').get(default='') в терминале, я получаю пустой ответ.В итоге я поднялся на уровень с помощью следующего селектора ... response.css('#divSideBar').get(default=''), и я получил кучу символов пробела \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t

Я могу очень просто выбирать элементы с помощью инструментов разработчика в Chrome.Я также проверил вкладку сети в Chrome, и содержимое приходит с URL-адреса, который я собираю:

enter image description here

Есть ли способ получить доступ ксодержимое элемента с #divSideBar id?

1 Ответ

0 голосов
/ 04 марта 2019

Фактически все данные поступают из динамического запроса post.

Что вам нужно сделать, это отправить еще один FormRequest с некоторыми необходимыми parameter согласно запросу, который вы можете увидеть на вкладке inspect header заголовка сети .

def parse(self, response):
   target_headers = {
        'Accept'         : '*/*',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'en-US,en;q=0.8,zh-TW;q=0.6,zh;q=0.4',
        'Connection'     : 'keep-alive',
        'Content-Type'   : 'application/x-www-form-urlencoded; charset=UTF-8',
        'User-Agent'     : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) 
                          AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
        'Referer'        : request.url,
    }

   yield FormRequest(request.url, formdata={...}, method='POST', 
                     headers=target_headers, meta=response.meta, callback=self.parse_detail)

def parse_detail(self, response):
    # crawl your data here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...