selenium 如何从网页抓取div类中的python Selence输出到输出文本

dwthyt8l  于 2022-11-10  发布在  Python
关注(0)|答案(2)|浏览(146)

这是我的密码`

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)

这是以下代码的输出
A列

<绑定方法标签,rp 88.000的unicode>
<绑定方法标签,rp 200.000的unicode>
如何将输出转换为此输出
A列

RP 88.000
RP 200.000
我尝试从harga = it.find('div','element').__str__harga = it.find('div','element').text,但收到错误AttributeError: 'NoneType' object has no attribute 'text'
我试着学习在Web上抓取PYTHON SELENCE,但是我被输出成了文本,我想我希望所有的输出都变成文本

Share
Improve this question
关注
11月2日6:30问道

Rezky Rezky
3855枚青铜徽章

czq61nw1

czq61nw11#

您可以在此行中添加**.text**

harga = soup.find("div", {"class": "db gM ei b hE be f16-360-o ff vb uT ellipsis-1"}).text

然后您将得到如下所示的输出
Nama Sepatu|Harga

Sepatu A|Rp.24.000

x3naxklr

x3naxklr2#

看起来问题出在您用来定位元素的命令上。如果未找到元素,则BS为它们返回NONE。
这些行中的element_1element是什么意思?:

sepatu = soup.find_all('div', 'element_1')

harga = it.find('div','element').__str__

如果这些是ID,则需要这样设置:

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属性获取其文本

相关问题