@TheMerenkov

Парсинг выдачи 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', encoding = "utf-8") as file:
    json.dump(data, file, ensure_ascii=False)


Возможно xpath некорректно копирует информацию, но проверяю с помощью xpath helper - все верно. Если я запускаю скрипт на домашним компьютере, то у меня пустой json, а если на работе, то заполненный. Как такое может быть? То есть на одном компьютере работает, а на другом - нет
  • Вопрос задан
  • 239 просмотров
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
декомпозируй

сохраняй ответ от бинга в файл
с заголовками

а ваще радоваться надо, парсерам бинг любит давать левую инфу
Ответ написан
Комментировать
у меня только через selenium получилось добицца от бинга взаимности) если надо - скину свой скрипт для примера
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы