Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Парсинг / анализ чата

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
19 Окт 2022
Сообщения
68
Реакции
18
Писал парсер ChatBox от нехуй делать, больше всего сообщений написал @beer007, мои искренние поздравления.

1767376801242.png


@Hack3r_jopi заслуженное серебро - 344 сообщения.
@YoungSlayer - бронза.
 
Куки только подставь.

Код:
Expand Collapse Copy
import requests
from bs4 import BeautifulSoup
import pandas as pd

headers = {
    "Cookie": "..."
}

def main():
    global max_count

    df = pd.DataFrame(columns=["UserName", "MsCount"])

    for page in range(584):
        link = f"https://yougame.biz/chat/history/?page={page}"
        print(f"-- Working as: {link} --")

        responce = requests.get(link, cookies=headers)
        if responce.status_code != 200:
            print("Invalid request")
            break
       
        else:
            soup = BeautifulSoup(responce.text, "html.parser")
            elements = soup.find_all("div", class_="message")
           
            if elements != None:
                for element in elements:
                   
                    name_user = element.find("div", class_="username")
                    message_user = element.find("div", class_="bbWrapper")
                    message_date= element.find("div", class_="message-date")

                    name = (name_user.text).strip()
                    message = (message_user.text).strip()
                    date = (message_date.text).strip()

                    if name in df["UserName"].values:
                        df.loc[df["UserName"] == name, "MsCount"] += 1
                    else:
                        df = df._append(
                            {
                                "UserName": name,
                                "MsCount": 1,
                            },
                            ignore_index=True
                        )

                    with open("chat_history.txt", "a", encoding="utf-8") as ch:
                        ch.write(f"{date}: {name}: {(message)}\n")
            else:
                print("No elements")
                return None
    else:
        df.to_excel("mainpars.xlsx", index=False)

if __name__ == "__main__":
    main()
1767377463562.png
 
Куки только подставь.

Код:
Expand Collapse Copy
import requests
from bs4 import BeautifulSoup
import pandas as pd

headers = {
    "Cookie": "..."
}

def main():
    global max_count

    df = pd.DataFrame(columns=["UserName", "MsCount"])

    for page in range(584):
        link = f"https://yougame.biz/chat/history/?page={page}"
        print(f"-- Working as: {link} --")

        responce = requests.get(link, cookies=headers)
        if responce.status_code != 200:
            print("Invalid request")
            break
      
        else:
            soup = BeautifulSoup(responce.text, "html.parser")
            elements = soup.find_all("div", class_="message")
          
            if elements != None:
                for element in elements:
                  
                    name_user = element.find("div", class_="username")
                    message_user = element.find("div", class_="bbWrapper")
                    message_date= element.find("div", class_="message-date")

                    name = (name_user.text).strip()
                    message = (message_user.text).strip()
                    date = (message_date.text).strip()

                    if name in df["UserName"].values:
                        df.loc[df["UserName"] == name, "MsCount"] += 1
                    else:
                        df = df._append(
                            {
                                "UserName": name,
                                "MsCount": 1,
                            },
                            ignore_index=True
                        )

                    with open("chat_history.txt", "a", encoding="utf-8") as ch:
                        ch.write(f"{date}: {name}: {(message)}\n")
            else:
                print("No elements")
                return None
    else:
        df.to_excel("mainpars.xlsx", index=False)

if __name__ == "__main__":
    main()
Посмотреть вложение 323635
стиллер
 
Назад
Сверху Снизу