Forum
>>
Principianti
>>
Web scraping con BeautifulSoap
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da leoleo |
2020-06-14 23:47:45 - Web scraping con BeautifulSoap
|
Ciao a tutti, premetto che sono nuovo con Python!!
Mi trovo davanti ad un problema perchè dovrei trovare tramite BeautifulSoap uno span contenuto in un button con questo codice <button class="sqdOP yWX7d _8A5w5 " type="button">altri <span>17</span></button> Ho fatto 2 tentativi: il primo in questo modo: for item in soup.find_all('button', {'class': 'sqdOP yWX7d _8A5w5 '}): ma non ottenevo veramente nulla come risultato... Il secondo tentativo è stato questo: for item in soup.select('button.sqdOP span')0: e ricevo questo errore list index out of range qualcuno sa trovare una soluzione/modo per risolvere il 'dilemma'? grazie! |
|
Scritto da RicPol |
2020-06-15 14:46:23 - Re: Web scraping con BeautifulSoap
|
anche se la tua pagina html è scritta con i piedi, devi lo stesso comportarti bene con bs4.
prova soup.find_all('button', {'class': 'sqdOP yWX7d _8A5w5'}) senza tutti gli spazi assurdi, e qualcosa secondo me trovi. Mal che vada specifica una classe soltanto. https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog |
|
Scritto da leoleo |
2020-06-15 22:25:56 - Re: Web scraping con BeautifulSoap
|
Ciao, ho provato in diversi modi specificando la classe con gli spazi, senza, e mantenendo solo la prima parte ma non ricevo nulla in output... questo è il codice. grazie.
import bs4 as bs import urllib.request import time import telepot from telepot.loop import MessageLoop whitelist = set('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 -') def handle(msg): content_type, chat_type, chat_id = telepot.glance(msg) print(content_type, chat_type, chat_id) try: sauce = urllib.request.urlopen(msg['text']).read() soup = bs.BeautifulSoup(sauce, 'html.parser') for item in soup.find_all('button', {'class':'sqdOP'}): #answer = ''.join(filter(whitelist.__contains__, item.text)) bot.sendMessage(chat_id, item) print(item) except urllib.error.HTTPError as err: if err.code == 404: bot.sendMessage(chat_id, "Link del post non corretto, incolla un link di questo tipo: https://www.instagram.com/p/xxxxx") --- Ultima modifica di leoleo in data 2020-06-15 22:26:17 --- |
|
Scritto da RicPol |
2020-06-16 11:48:34 - Re: Web scraping con BeautifulSoap
|
Guarda, tutto quello che posso dirti è:
>>> from bs4 import BeautifulSoup >>> doc = '''<html><body> ... <button class="sqdOP yWX7d _8A5w5 " type="button">altri <span>17</span></button> ... </body></hmtl>''' >>> soup = BeautifulSoup(doc, 'html.parser') >>> soup.find_all('button', {'class': 'sqdOP yWX7d _8A5w5'}) # il modo sbagliato [] >>> soup.find_all('button', {'class': 'sqdOP yWX7d _8A5w5'}) # il modo giusto [<button class="sqdOP yWX7d _8A5w5" type="button">altri <span>17</span></button>]Se provi questo in una shell, vedi che funziona. Quindi non so che cos'altro fa il codice e dove stia il problema, ma... questo è. https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog |
|
Scritto da leoleo |
2020-06-16 21:54:21 - Re: Web scraping con BeautifulSoap
|
questo è ciò che restituisce https://ibb.co/SvTpPrS --- Ultima modifica di leoleo in data 2020-06-16 21:54:52 --- |
Pagina: 1
Esegui il login per scrivere una risposta.