Python Beautiful Soup и urllib.request - Как пройти проверку возраста Steam - PullRequest
1 голос
/ 28 апреля 2019

Я пытаюсь создать парсер Steam, который получает информацию о недельных предложениях.

Однако некоторые элементы блокируются проверкой возраста. Я использую urllib.request и Beautiful Soup 4 для получения информации, но, как вы уже догадались, я не могу добраться до предметов с рейтингом М. Я пытался найти похожие вопросы, но ни один из них не показал мне, как пройти проверку возраста с помощью urllib.request

Я хочу, чтобы критерий равнялся «Без описания», только если у элемента фактически нет описания

Вот мой код:

import urllib.request

import bs4 as bs

source = urllib.request.urlopen('https://store.steampowered.com/search/?filter=weeklongdeals')
soup = bs.BeautifulSoup(source,'lxml')

searchResultContainer = soup.find('div',{'id':'search_result_container'})
containerHolder = searchResultContainer.findChildren()[1]

links = []
for a in containerHolder.findAll('a', href=True):
    links.append(a['href'])

x = 0
description = []
for link in links:
    source = urllib.request.urlopen(str(link))
    soup = bs.BeautifulSoup(source,'lxml')

    try: 
        test = soup.find('div',{'class':'game_description_snippet'}).get_text().strip()
        description.append(soup.find('div',{'class':'game_description_snippet'}).get_text().strip())
    except:
        test = 'No description'
        description.append('No description')
    finally:
        x += 1
        print(f'{x}: {test}')

1 Ответ

0 голосов
/ 28 апреля 2019

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

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

...