Я хочу выяснить, как исправить ошибки, с которыми я сталкиваюсь при сборе отзывов сотрудников с Indeed и Glassdoor с помPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Я хочу выяснить, как исправить ошибки, с которыми я сталкиваюсь при сборе отзывов сотрудников с Indeed и Glassdoor с пом

Сообщение Anonymous »

приятно познакомиться!
Я пытаюсь использовать Scrapfly для сбора отзывов сотрудников с таких сайтов, как Indeed или Glassdoor.
Однако я столкнулся с постоянной проблемой, о которой просто не могу судить. которую нужно решить.
Данные, которые я пытаюсь очистить, не проходят — в результатах отображаются только заголовки.
Что бы я ни пытался, я продолжаю сталкиваться с ужасным «пустым фреймом данных». проблема.
Я следил за примерами кода других людей, но у меня это не сработало.
Как другие успешно собирают эти обзоры?
Есть ли кто-нибудь, кто может одолжить руку помощи?
Буду очень признателен за вашу доброту!
!pip install beautifulsoup4 pandas lxml requests

!git clone https://github.com/scrapfly/python-sdk.git
%cd python-sdk
!pip install .

from scrapfly.client import ScrapflyClient

import os
os.environ["SCRAPFLY_KEY"] = "my key"

import os
import pandas as pd
from scrapfly.client import ScrapflyClient
from bs4 import BeautifulSoup

# Scrapfly API 키 설정
os.environ["SCRAPFLY_KEY"] = "my key"
SCRAPFLY_KEY = os.getenv("SCRAPFLY_KEY")
client = ScrapflyClient(key=SCRAPFLY_KEY)

# 결과를 저장할 리스트 초기화
lst = []

# 페이지를 순회하며 데이터 수집
for i in range(0, 240, 20): # 페이지 번호 범위
print(f"Scraping page {i // 20 + 1}...")

url = f"https://www.indeed.com/cmp/Airbnb/reviews?start={i}"

try:
# Scrapfly를 사용하여 데이터 요청
response = client.scrape({"url": url, "render_js": False}) # JavaScript 렌더링 필요 시 True로 설정
soup = BeautifulSoup(response.content, 'lxml')
main_data = soup.find_all("div", attrs={"data-tn-section": "reviews"})

# 데이터 추출
for data in main_data:
try:
title = data.find("h2").get_text(strip=True)
except AttributeError:
title = None

try:
author_status = data.find("span", attrs={"itemprop": "author"}).get_text(strip=True)
author = author_status.split("-")[1] if "-" in author_status else None
status = author_status.split("-")[0] if "-" in author_status else None
except AttributeError:
author, status = None, None

try:
review = data.find("span", attrs={"itemprop": "reviewBody"}).get_text(strip=True)
except AttributeError:
review = None

try:
pros = data.find("div", class_="cmp-review-pro-text").get_text(strip=True)
except AttributeError:
pros = None

try:
cons = data.find("div", class_="cmp-review-con-text").get_text(strip=True)
except AttributeError:
cons = None

try:
rating = data.find("div", attrs={"itemprop": "reviewRating"}).find("button")['aria-label'].split(" ")[0]
except AttributeError:
rating = None

# 결과를 리스트에 추가
lst.append([title, author, status, pros, cons, review, rating])

except Exception as e:
print(f"Error on page {i // 20 + 1}: {e}")

# DataFrame 생성
df = pd.DataFrame(lst, columns=['Title', 'Author', 'Status', 'Pros', 'Cons', 'Review', 'Rating'])

# 결과 출력 및 저장
print(df.head())
df.to_csv("/content/drive/MyDrive/indeed_reviews_scrapfly.csv", index=False)


Scraping page 1...
Error on page 1: 'dict' object has no attribute 'method'
Scraping page 2...
Error on page 2: 'dict' object has no attribute 'method'
Scraping page 3...
Error on page 3: 'dict' object has no attribute 'method'
Scraping page 4...
Error on page 4: 'dict' object has no attribute 'method'
Scraping page 5...
Error on page 5: 'dict' object has no attribute 'method'
Scraping page 6...
Error on page 6: 'dict' object has no attribute 'method'
Scraping page 7...
Error on page 7: 'dict' object has no attribute 'method'
Scraping page 8...
Error on page 8: 'dict' object has no attribute 'method'
Scraping page 9...
Error on page 9: 'dict' object has no attribute 'method'
Scraping page 10...
Error on page 10: 'dict' object has no attribute 'method'
Scraping page 11...
Error on page 11: 'dict' object has no attribute 'method'
Scraping page 12...
Error on page 12: 'dict' object has no attribute 'method'
Empty DataFrame
Columns: [Title, Author, Status, Pros, Cons, Review, Rating]
Index: []


Подробнее здесь: https://stackoverflow.com/questions/791 ... ping-emplo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»