С Beautifulsoup я нахожу значение голосования на странице с
vote = container.find('span', attrs = {'name':'nv'})['data-value']
как мне найти значение для брутто, потому что это то же имя диапазона?
Страница - Выпущена в период с 2018-01-01 по 2018-12-31
Не очень питонический способ делать вещи, но я вроде играл с ним.
from bs4 import BeautifulSoup import requests def get_imdb_data(url): data = requests.get(url) soup = BeautifulSoup(data.text) divs = soup.findAll('div', {'class':'lister-item'}) movies = [] for div in divs: movie = {} movie['name'] = div.find('h3').find('a').text spans = votes = gross = None try: spans = div.findAll('span', {'name':'nv'}) try: movie['votes'] = spans[0]['data-value'] except: pass try: movie['gross'] = spans[1]['data-value'] except: pass except: pass movies.append(movie) return movies url = 'https://www.imdb.com/search/title?release_date=2018&sort=num_votes,desc&page=1' data = get_imdb_data(url) print(data)
возможно, используйте findAll и выберите второй элемент, чтобы получить значение поля Gross.Например:
findAll
elements = container.findAll('span', attrs = {'name':'nv'}) votes = elements[0]['data-value'] gross = elements[1]['data-value']