Как извлечь текст из тега <p>? - PullRequest
1 голос
/ 19 апреля 2020

Я хотел бы отсканировать отзывы от Zomato с библиотекой BeautifulSoup в Python.

Однако в каждом обзоре нет тега div, а только тег тега.

Когда я кодирую это

 review = soup.find_all("p", attrs={"class": "sc-1hez2tp-0 sc-kQsIoO cCvqWb"})

Вывод:

review
[<p class="sc-1hez2tp-0 sc-kQsIoO cCvqWb"></p>,
 <p class="sc-1hez2tp-0 sc-kQsIoO cCvqWb">Kalau kesini wajib bangetnih pesen Ikan Gurame, rasanya bener” enakk. Bumbu guramenya pun macem”, mulai dari bumbu spesial gurih7, asem manis, sambal manga, kecombrang, rica-rica, &amp; pecak! Kulit di udang mayonaisenya juga udah dicopotin, jadi lebih enak makannya. <br/>.<br/>Buat minuman, es kelapa nya seger banget, dagingnya juga gampang diambil, ga kaya es kelapa ditempat lainnya yang dagingnya susah dikerok. Tapi air kelapanya pakai gula, jadi rasanya terlalu manis. Tips kalau pesen es kelapa, request tanpa gula aja biar manisnya pas &amp; lebih segerr??</p>,
 <p class="sc-1hez2tp-0 sc-kQsIoO cCvqWb">This restaurant served a west java cuisine that adapt into local taste which i could say is not spicy compare the original recipe. The place is easy to access, 15 minutes go to highway nearby means that people are not difficult to find the location. But the parking area are not so good &amp; not convenience in some place not all</p>,
 <p class="sc-1hez2tp-0 sc-kQsIoO cCvqWb">Waiters nya kak kikis ramah dan sopan</p>,
 <p class="sc-1hez2tp-0 sc-kQsIoO cCvqWb">Pelayanan yg responsif, waiter AA Joko baik pisan euy sangat ramah dan responsif. Menunya enak2, gurame goreng kipas dan udang bakar galah madu mantaabbbb!!! Sayur asemnya endeusss hihihi anyway thx zomato gold ??? pasti balik lagi donggg ???</p>]

Я хочу, чтобы каждый текст в paragraf был вставлен в список Dataframe с именем одного столбца 'reviews'.

рецензии

1. Kalau kesini wajib bangetnih pesen Ikan Gurame, rasanya bener” enakk. Bumbu guramenya pun macem”, mulai dari bumbu spesial gurih7, asem manis, sambal manga, kecombrang, rica-rica, &amp; pecak! Kulit di udang mayonaisenya juga udah dicopotin, jadi lebih enak makannya. <br/>.<br/>Buat minuman, es kelapa nya seger banget, dagingnya juga gampang diambil, ga kaya es kelapa ditempat lainnya yang dagingnya susah dikerok. Tapi air kelapanya pakai gula, jadi rasanya terlalu manis. Tips kalau pesen es kelapa, request tanpa gula aja biar manisnya pas &amp; lebih segerr??
2. This restaurant served a west java cuisine that adapt into local taste which i could say is not spicy compare the original recipe. The place is easy to access, 15 minutes go to highway nearby means that people are not difficult to find the location. But the parking area are not so good &amp; not convenience in some place not all
3. ...

Я пытался

import pandas as pd
review_text = []
for el in soup.find_all('p', attrs={'class': 'sc-1hez2tp-0 sc-kQsIoO cCvqWb'}):
    komentar = print(el.get_text().encode('utf-8'))
    review_text.append(komentar)

reviews = {'komentar':review_text}
df = pd.DataFrame(reviews, columns=['reviews'])
df

, но он возвращает пустой вывод данных.

1 Ответ

0 голосов
/ 19 апреля 2020

Ваш код komentar = print(el.get_text().encode('utf-8')) неверен, удалите функцию печати

здесь простой пример

from bs4 import BeautifulSoup

url = '<p class="sc-1hez2tp-0 sc-kQsIoO cCvqWb"></p>' \
      '<p class="sc-1hez2tp-0 sc-kQsIoO cCvqWb">Kalau kesini wajib bangetnih pesen Ikan Gurame </p>' \
      '<p class="sc-1hez2tp-0 sc-kQsIoO cCvqWb">This restaurant served a west java cuisine</p>' \
      '<p class="sc-1hez2tp-0 sc-kQsIoO cCvqWb">Waiters nya kak kikis ramah dan sopan</p>' \
      '<p class="sc-1hez2tp-0 sc-kQsIoO cCvqWb">Pelayanan yg responsif</p>'


html = BeautifulSoup(url, features='html.parser')
paragraphs = html.find_all("p", {"class": "sc-1hez2tp-0 sc-kQsIoO cCvqWb"})

review_text = []

paragraph = [p.text for p in paragraphs]
review_text.append(paragraph)
print(review_text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...