BeautifulSoup >> IndexError: индекс списка вне допустимого диапазона - PullRequest
0 голосов
/ 10 июля 2020

Я выполняю простой веб-скрейпинг с помощью функции Python ниже, которая использует BeautifulSoup.

import requests
from bs4 import BeautifulSoup

def webcheck(company,cat,count):
  query = '%s +%s' %(company,cat)
  url = 'https://www.google.com/search?q='+query

  headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0'}
  source = requests.get(url, headers=headers).text 

  # BeautifulSoup
  soup = BeautifulSoup(source, 'lxml')
  search_div = soup.find_all(class_='rc')
  return [search_div[x].find(class_='st').text for x in range(count)]

company, cat, count = ('Walmart','+stock quote', 3)
webcheck(company,cat,count)  

Он работает и возвращает 3 верхние строки текста из поиска, как задумано.

Он также работает с DataFrame из 5 строк (используя apply(lambda x: webcheck(x.name,key,3), axis=1).

, но не с более крупными DataFrame из 2000 строк, что приводит к ошибке ниже.

 IndexError: list index out of range

Странно и больше всего сбивает с толку то, что как одиночный поиск (с использованием функции), так и поиск в одном и том же DataFrame из 5 строк после этого также перестают работать .... до нескольких часов или на следующий день.

Благодарен за любой идеи или решения.

...