从网页抓取产品名称

2021-03-02 15:52:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在这个网站上找到行李的名字-http://www.barneys.com/barneys-new-york/women/bags。 到目前为止,我有以下代码:

 from urllib.request import urlopen
    from bs4 import BeautifulSoup
    url="http://www.barneys.com/barneys-new-york/women/bags"
    html = urlopen(url)
    bsObj = BeautifulSoup(html.read(),"html.parser")  
    product_name = bsObj.findAll("a",{"class":"name-link"})
    print(product_name)

我尝试了renderContents()和get_text(),但它们给了我错误(AttributeError)。在

1条回答
网友
1楼 ·

名称位于产品名称div中:

from bs4 import BeautifulSoup
import  requests

soup = BeautifulSoup(requests.get("http://www.barneys.com/barneys-new-york/women/bags").content)

print([prod.text.strip() for prod in  soup.select("div.product-name")])

这给了你:

^{pr2}$

如果您想要所有的信息,您可以从具有idprimary的div内的thumb-link类的定位标记中获取:

print(soup.select("#primary a.thumb-link"))

其输出如下:

<a class="thumb-link" href="http://www.barneys.com/vianel-lizard-iphone%C2%AE-6-plus-case-504475332.html" title="Lizard iPhone® 6 Plus Case">
<img alt="Vianel Lizard iPhone® 6 Plus Case" class="gridImg" data-image-alter="http://product-images.barneys.com/is/image/Barneys/504475332_2_detail?$grid_new_fixed$" data-original="http://product-images.barneys.com/is/image/Barneys/504475332_1_tabletop?$grid_new_fixed$" height="370" onerror="this.src='http://demandware.edgesuite.net/aasv_prd/on/demandware.static/Sites-BNY-Site/-/default/dwd89468c5/images/browse_placeholder_image.jpg'" title="Lizard iPhone® 6 Plus Case" width="231"/>
<noscript>
<img alt="Vianel Lizard iPhone® 6 Plus Case" src="http://product-images.barneys.com/is/image/Barneys/504475332_1_tabletop?$grid_new_fixed$" title="Lizard iPhone® 6 Plus Case?$grid_new_fixed$"/>
</noscript>

你可以解析图片,标题等。。从每个a返回。在

使用您自己的代码,您需要访问.text属性,如下所示:

product_name = [a.text.strip() for a in  bsObj.findAll("a",{"class":"name-link"})]
print(product_name)

与第一次选择相同:

^{pr2}$

相关问题