Очистить обзор

Интересно, почему я не могу очистить этот обзор компании. Например, я хочу очистить размер Walmart, который составляет 10000+ сотрудников. Ниже мой код, не уверен, почему информации, которую я ищу, нет...

import requests
from bs4 import BeautifulSoup
import pandas as pd 



url = f'https://www.glassdoor.com/Overview/Working-at-Walmart-EI_IE715.11,18.htm'
    # f'https://www.glassdoor.com/Reviews/Google-Engineering-Reviews-EI_IE9079.0,6_DEPT1007_IP{pg}.htm?sort.sortType=RD&sort.ascending=false&filter.iso3Language=eng'

r = requests.get(url, headers)
soup = BeautifulSoup(r.content, 'html.parser')

Сайт Glassdoor требует авторизации. Посмотрите на содержимое переменной r — оно отображается в браузере, потому что весь контент будет загружен после вашей аутентификации.

Ni3dzwi3dz 27.11.2022 07:50
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот одно из возможных решений:

import re
import json
import requests
from bs4 import BeautifulSoup


headers = {
    'user-agent': 'Mozilla/5.0'
}

with requests.Session() as session:
    session.headers.update(headers)
    raw_data = session.get(f'https://www.glassdoor.com/Overview/Working-at-Walmart-EI_IE715.htm').text
    
    script = [s.text for s in BeautifulSoup(raw_data, "lxml").find_all("script") if "window.appCache" in s.text][0]
    json_data = json.loads(re.findall(r'(\"Employer:\d+\":)(.+)(,\"ROOT_QUERY\")', script)[0][1])

    data = {
        "id": json_data["id"],
        "shortName": json_data["shortName"],
        "website": json_data["website"],
        "type": json_data["type"],
        "revenue": json_data["revenue"],
        "headquarters": json_data["headquarters"],
        "size": json_data["size"],
        "yearFounded": json_data["yearFounded"]
    }
    
    print(data)

Выход:

{
  'id': 715,
  'shortName': 'Walmart',
  'website': 'careers.walmart.com',
  'type': 'Company - Public',
  'revenue': '$10+ billion (USD)',
  'headquarters': 'Bentonville, AR',
  'size': '10000+ Employees',
  'yearFounded': 1962
}

Если вам нужен только «размер», просто используйте, например. size = json_data["size"]

Другие вопросы по теме