<div class="style__font-bold___1k9Dl style__font-14px___YZZrf style__flex-row___2AKyf style__space-between___2mbvn style__padding-bottom-5px___2NrDR">
<div>Augmentin 625 Duo Tablet</div></div>
我想抓取“Augmentin 625 Duo Tablet”文本,但似乎无法获取
我现在使用的代码是:
import requests
import bs4
import lxml
result=requests.get("https://www.pharmadude.com")
#print((type(result)))
soup = bs4.BeautifulSoup(result.text,"lxml")
#print(soup)
scrape=soup.find_all('div', attrs={'class': 'style__font-bold___1k9Dl style__font-14px___YZZrf style__flex-row___2AKyf style__space-between___2mbvn style__padding-bottom-5px___2NrDR'})
for div in scrape:
bar=soup.find_all('div')
print(bar.text)
输出:
首先,确定包含数据的框。然后得到包含文本的跨度。对于范围内的每个段落,打印文本
如果对价格感兴趣,请进入div并进一步了解其范围
输出:
Augmentin 625 Duo Tablet
这段代码正是您所需要的
soup.find_all
返回一个列表,您需要在列表中找到该项,然后获取该项的.text
属性。在您的例子中,该项是第二项,因此使用第一个索引您可以使用
find_all
来定义bar
。所以bar
是一个列表,没有text
属性。在循环的div
变量上使用find
,而不是find_all
。就像这样:(您也可以参考this answer)
相关问题 更多 >
编程相关推荐