Задать вопрос
@Nizier193

Почему при переносе информации с Питона в Excel обрубаются тексты?

Я создал парсер, который забирает с сайта всю нужную информацию: описание, заголовок и картинки. Сайт https://sort-klubnika.ru/.
Там при переходе на страницу, высвечиваются заголовки, если перейти по ним, отображаются описания (объединенные тегами <p>), а также картинки.

Заголовки (A), картинки (C) и описания (B) я запихиваю в Excel таблицу (которая тоже прикреплена)
Но так получается, что когда я просматриваю описания, тексты просто обрубаются, причём, по моему мнению, в абсолютно разных местах.
К примеру возьмем B24, там текст обрубился на моменте "кусты могут не успеть прижиться до жары, поэтому целесообразнее".
Или B171 "большинству заболеваний, в условиях прохладного и".
Количество символов абсолютно разное, почему оно обрубается?

На ошибку, которая выскакивает на 176 запросе можно не обращать внимания, т.к она не столь важна.
Хотя если вы объясните её, я был бы очень признателен.

import requests
from bs4 import BeautifulSoup
import openpyxl
wb = openpyxl.load_workbook(filename = '123123.xlsx')
ws = wb.active

total = 0
def parser():
    global total
    titlb = []; hrefb = []
    response = requests.get("https://sort-klubnika.ru/sorta")
    response = response.content
    html = BeautifulSoup(response, "html.parser")
    title = html.find_all(itemprop="headline")
    for titla in title:
        titlb.append(titla.text)
    for hrefa in title:
        hrefb.append(hrefa.a.attrs['href'])
    l = 0
    description = []
    for i in range(5):
        img = []
        response1 = requests.get(hrefb[l])
        response1 = response1.content
        html1 = BeautifulSoup(response1, "html.parser")
        descripti = html1.find_all("p")
        html_photo = html1.find_all(loading="lazy")
        for descript in descripti:
            description.append(descript.text)
        for photob in html_photo:
            img.append(photob.get("src"))

        fftext = (', '.join(img))
        ftext = (', '.join(description))

        def pluses():
            prosminus = []
            prosminusa = html1.find_all("li")
            for prosminusb in prosminusa:
                prosminus.append(prosminusb.text)
            for k in range(5):
                prosminus.pop(-1)
            for a in range(11):
                prosminus.pop(0)


        print(titlb[0])
        print(description)
        #print(*prosminus)
        print(img)
        l += 1
        total += 1
        ws[f"A{total}"] = titlb[0]
        titlb.pop(0)
        ws[f"B{total}"] = ftext
        ws[f"C{total}"] = fftext
        description.clear()
        img.clear()

        q = 2
        for m in range(35):
            titlb = []; hrefb = []
            response = requests.get(f"https://sort-klubnika.ru/sorta/page/{q}")
            response = response.content
            html = BeautifulSoup(response, "html.parser")
            title = html.find_all(itemprop="headline")

            for titla in title:
                titlb.append(titla.text)
            for hrefa in title:
                hrefb.append(hrefa.a.attrs['href'])

            print(titlb)
            l = 0
            q += 1
            description = []
            for i in range(5):
                img = []
                response1 = requests.get(hrefb[l])
                response1 = response1.content
                html1 = BeautifulSoup(response1, "html.parser")
                descripti = html1.find_all("p")
                photos = html1.find_all(itemprop="url image")
                for descript in descripti:
                    description.append(descript.text)
                for phota in photos:
                    img.append(phota.get("src"))



                def pluses():
                    prosminus = []
                    prosminusa = html1.find_all("li")
                    for prosminusb in prosminusa:
                        prosminus.append(prosminusb.text)
                    for k in range(5):
                        prosminus.pop(-1)
                    for a in range(11):
                        prosminus.pop(0)

                print(titlb[0])
                print(description)
                l += 1
                total += 1
                print(total)
                fftext = (', '.join(img))
                ftext = (', '.join(description))
                print(img)
                ws[f"A{total}"] = titlb[0]
                ws[f"B{total}"] = ftext
                ws[f"C{total}"] = fftext
                titlb.pop(0)
                img.clear()

                wb.save("123123.xlsx")
                description.clear()
parser()

Некоторые детали кода закомментированы, их можно не рассматривать.
Ошибку, которая возникает на 176 запросе, можно тоже не рассматривать.
  • Вопрос задан
  • 70 просмотров
Подписаться 2 Средний 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы