Это мой код `
from attr import attr
import requests
from bs4 import BeautifulSoup
import csv
datas = []
key = 'sepatu'
jenis = 'teplek'
url = 'https://website.com/search/?term = {}+{}'.format(key,jenis)
headers = {
'user-agent' : 'Mozilla/5.0 (X11; Linux x86_64; rv:106.0) Gecko/20100101 Firefox/106.0'
}
req = requests.get(url, headers=headers)
soup = BeautifulSoup (req.text, 'html.parser')
sepatu = soup.find_all('div', 'element_1')
for it in sepatu:
harga = it.find('div','element').__str__
datas.append([harga])
hasil = ['Harga']
write = csv.writer(open('result/{}_{}.csv'.format(key,jenis), 'w', newline=''))
write.writerow (hasil)
for d in datas: write.writerow(d)
это вывод из этого кода
как превратить этот выход в этот выход
я пытался
harga = it.find('div','element').__str__ на harga = it.find('div','element').text но у меня ошибка AttributeError: 'NoneType' object has no attribute 'text'
я пытаюсь изучить веб-очистку python selenium, но я получил блок путем вывода в текст, и я ожидаю, что хочу, чтобы весь вывод был в текст






Похоже, проблема связана с командами, которые вы используете для поиска элементов. Если элемент не найден, BS возвращает для них None.
Что означают element_1 и element в этих строках?:
sepatu = soup.find_all('div', 'element_1')
и
harga = it.find('div','element').__str__
Если это идентификаторы, вам нужно установить это так:
sepatu = soup.find_all('div', {'id': 'element_1'})
Если это имя класса:
sepatu = soup.find_all('div', {'class': 'element_1'})
Или любой другой атрибут:
sepatu = soup.find_all('div', {'attr_name': 'element_1'})
Когда элемент найден, вы можете использовать свойство .text, чтобы получить его текст.
Вы можете добавить .text в эту строку
harga = soup.find("div", {"class": "db gM ei b hE be f16-360-o ff vb uT ellipsis-1"}).text
Тогда вы получите такой вывод
попробуй:
harga.get_attribute('textContent')