Парсинг выдачи Bing

Написал парсинг выдачи Bing, скрипт отрабатывает, но почему-то в json-файл ничего не записывается - он пустой. Код следующий:

from requests_html import HTMLSession
from time import sleep
import json

session = HTMLSession()
number_result = 50
data = []

with open('keys.txt', 'r', encoding='utf-8') as keys_file:
    # Обработка для каждого ключевика из файла
    for line in keys_file:
        keyword = line.rstrip('\n')

        # Парсим выдачу bing по запросу ключевика
        response = session.get(f'https://www.bing.com/search?q={keyword}&count={number_result}')

        # Выделяем блоки результатов поиска в выдаче
        blocks = response.html.xpath('//*[@id="b_results"]/li[@class="b_algo"]')

        # В каждом блоке находим title, description + высчитываем domain
        for i, block in enumerate(blocks, 1):
            title = block.xpath('//h2/a')[0].text
            link = block.xpath('//h2/a/@href')[0]

            description = block.xpath('//div[@class="b_caption"]/p')
            description = [x.text for x in description]
            description = ' '.join(description)

            if link.startswith('http'):
                domain = link.split('/')[2]
            else:
                domain = 'Error = NOT http'

            # Все данные подготовлены - сохраняем
            data.append({
                'domain': domain,
                'link': link,
                'keyword': keyword,
                'position': i,
                'title': title,
                'description': description
            })

        print(f'Готово = {keyword}')

        # Задержка перед парсингом выдачи по следующему ключу
        sleep(5)

with open('data-8.json', 'w') as file:
    json.dump(data, file, ensure_ascii=False)

Возможно xpath некорректно копирует информацию, но проверяю с помощью xpath helper - все верно http://prntscr.com/udw47u


Ответы (0 шт):