• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Python web scrapping [problem poczatkujacego]

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
246 wizyt
pytanie zadane 30 listopada 2018 w Python przez Ferdu Gaduła (4,150 p.)

Hej wszystkim pisałem swój pierwszy "poważniejszy" program w pythonie 3.7 i natrafiłem na problem.

Chciałbym aby program pobierał ze strony zawartość znajdującą się w <p class="name">... </p> i wyświetlał ją bez zbędnych tagów (chyba tak to się nazywa)

Co mam do tej pory:

from bs4 import BeautifulSoup
import requests

page = requests.get("http://losownik.pl/imie/losuj/name-surname")
soup = BeautifulSoup(page.content, 'html.parser')
soup = soup.find_all(class_="name")

print (soup)

Co otrzymuje:

"C:\Program Files (x86)\Python37-32\python.exe" "C:/PycharmProjects/Generator imion/generator imion.py"
[<p class="name">
				Gabriela Król			</p>]

Process finished with exit code 0

chciałbym pozbyć się [<p class="name"> oraz </p>] Czuje że to coś bardzo prostego ale nie potrafię sobie z tym poradzić.

Następnie chciałbym dodać funkcję zapisywania zebranych imion i nazwisk do tabelki w exelu dodając do tego generowanie wieku z podanego przedziału wiekowego, a na samym końcu chciałbym stworzyć swoje gui które umożliwi wpisanie ile imion i nazwisk chciałbym wygenerować, jakiej płci oraz wskazać ścieżkę gdzie ma być zapisany plik ale wszystko w swoim czasie

 

Pozdrawiam i miłego dnia :D

1 odpowiedź

0 głosów
odpowiedź 30 listopada 2018 przez niezalogowany
r = soup.find_all("p", class_="name")
for item in r:
  print r.text

Możesz się do tego dobrać poprzez .text

komentarz 30 listopada 2018 przez Ferdu Gaduła (4,150 p.)

coś chyba robię nie tak :/

Kod:

from bs4 import BeautifulSoup
import requests

page = requests.get("http://losownik.pl/imie/losuj/name-surname")
soup = BeautifulSoup(page.content, 'html.parser')

r = soup.find_all("p", class_="name")
for item in r:
  print (r.text)

Output:

"C:\Program Files (x86)\Python37-32\python.exe" "C:/PycharmProjects/Generator imion/generator imion.py"

Traceback (most recent call last):
  File "C:/PycharmProjects/Generator imion/generator imion.py", line 17, in <module>
    print (r.text)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\bs4\element.py", line 1884, in __getattr__
    "ResultSet object has no attribute '%s'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?" % key
AttributeError: ResultSet object has no attribute 'text'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?

Process finished with exit code 1
1
komentarz 1 grudnia 2018 przez niezalogowany

Powinno być page.text, a nie page.content oraz item.text, a nie r.text ;) (ja zrobiłem błąd, sorry)

Podobne pytania

0 głosów
0 odpowiedzi 314 wizyt
pytanie zadane 11 kwietnia 2017 w PHP przez Paweł Łozowski Nowicjusz (180 p.)
0 głosów
1 odpowiedź 524 wizyt
pytanie zadane 19 sierpnia 2022 w Python przez NewbieProgrammer Początkujący (480 p.)
+1 głos
1 odpowiedź 346 wizyt

93,160 zapytań

142,172 odpowiedzi

321,894 komentarzy

62,489 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 453p. - Marcin Putra
  2. 453p. - dia-Chann
  3. 447p. - Łukasz Piwowar
  4. 443p. - CC PL
  5. 431p. - Łukasz Eckert
  6. 428p. - rafalszastok
  7. 423p. - Michal Drewniak
  8. 423p. - Adrian Wieprzkowicz
  9. 418p. - rucin93
  10. 410p. - Piotr Aleksandrowicz
  11. 408p. - ksalekk
  12. 402p. - Mariusz Fornal
  13. 401p. - Dawid128
  14. 383p. - Hubert Chęciński
  15. 340p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...