Why this code does not match a string from x ? Code will get all a-list-item , but when a check if there is a match , it always outputs NO
import requests
from bs4 import BeautifulSoup
check_words = '<span > Los kits de montaje completos permiten una instalación rápida y fácil </span>'
page = requests.get("https://www.amazon.es/dp/B00DRE5W04",verify=True)
soup = BeautifulSoup(page.content, 'html.parser')
x = soup.find_all('span', class_='a-list-item')
for item in x:
print(item)
if check_words == item:
print('yesss ',item)
else:
print('no')
OUTPUT
<span >Ve a tus pedidos y comienza la devolución</span>
no
<span >Selecciona el método de devolución</span>
no
<span >Envíalo.</span>
no
<span > Los kits de montaje completos permiten una instalación rápida y fácil </span>
no
<span > El enchufe universal UX se puede utilizar en todos los materiales sólidos, huecos y cartón </span>
no
<span > Fácil de usar </span>
no
<span > Marca: Fischer </span>
no
CodePudding user response:
You should convert items into strings
Try:
import requests
from bs4 import BeautifulSoup
check_words = '<span > Los kits de montaje completos permiten una instalación rápida y fácil </span>'
page = requests.get("https://www.amazon.es/dp/B00DRE5W04",verify=True)
soup = BeautifulSoup(page.content, 'html.parser')
x = soup.find_all('span', class_='a-list-item')
for item in x:
print(item)
if check_words == str(item):
print('yesss ',item)
else:
print('no')
CodePudding user response:
I would suggest you compare with the text inside the span as follows:
import requests
from bs4 import BeautifulSoup
check_words = 'Los kits de montaje completos permiten una instalación rápida y fácil'
page = requests.get("https://www.amazon.es/dp/B00DRE5W04", verify=True)
print(page.text)
soup = BeautifulSoup(page.content, 'html.parser')
for span in soup.find_all('span', class_='a-list-item'):
text = span.get_text(strip=True)
print(text)
if check_words == text:
print('yesss ', text)
else:
print('no')