【发布时间】:2021-03-29 12:21:42
【问题描述】:
我正在尝试从网站上抓取以下 href。网站上有几个我打算抓取的href,因此我正在循环浏览该网站,以便将它们全部存储在一个列表中。以下是其中一个 href 的示例。
<div class="col-md-4 h-gutter">
<div class="product box" data-productid="2111214">
<a href="/products/examples/product1/">
<h3>Product 1</h3>
<div class="product-small-text">
这是我有问题的代码部分。注释掉的是我试图只收集hrefs。由于这不起作用,现在我正试图刮掉整个“col-md-4 h-gutter”
for product in soup.select('div.product.box'):
link.append(product)
#link.append(product.a['href'])
print(link)
下面是打印到终端的内容。如您所见,href 隐藏在占位符后面。
</div>, <div class="product placeholder-container box">
<h3><span class="placeholder-text--long"></span></h3>
<div class="product-small-text">
<span class="placeholder-text--short"></span>
</div>
如何打印出 href 的值?
【问题讨论】:
-
所有相关的
ahref 是否都以/products/examples/开头?也许只搜索这些更容易。否则你需要做一个更复杂的选择器。 -
@tobias 是的,他们这样做了。但是,我还需要解析网站上的其他信息,这些信息我没有在这里显示,这让事情变得很困难。在任何情况下如何最好地搜索 /products/?
-
[href*='/products/examples']或[href^='/products/examples'] -
用你最初的方法,你可以试试
.select('.h-gutter > .product .box')。它只是一个 CSS 选择器。 -
是的,您可以这样做。使用 F12 打开浏览器的网络选项卡,然后按 F5 刷新页面,然后查看该 API 调用的网络活动,并查看您的区域设置的参数。
标签: python python-3.x web-scraping beautifulsoup web-scraping-language