python - 当使用beautifulsoup进行网页抓取然后保存到csv时,我只收到一行信息而不是所有需要的行
问题描述
免责声明:我是编码新手。
我认为我的问题在我的 for 循环中,但即使在浏览了 stackoverflow 上的已回答问题后,我也不确定要更改什么。所以,这是我关于我的问题的代码:
csv_file = open('converter_scrape.csv', 'w')
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['Category Name', 'Price'])
entries = soup.find_all('div', class_="prices")
for entry in entries:
cat_name = entry.h3.text.strip()
print(cat_name)
cat_price = entry.p.text.strip()
print(cat_price)
csv_writer.writerow([cat_name, cat_price])
csv_file.close()
上面的脚本从网站上生成“小面包猫”和“$105-$200/each”。这是我想要的,但在这个之后还有更多。for 循环在检索到一个后停止。我正在寻找名称和相应的价格(小型面包猫、大型 GM 猫、大型外国猫等)。但是,我的 csv 仅获得第一个类别+价格,而不是全部。
<div class="prices">
<div class="price-list">
<div class="price ">
<a href="https://X.com/metal/small-breadloaf-cat/">
<h3>Small Breadloaf Cat</h3>
<p> $105-$200/each </p>
</a>
</div>
<div class="price ">
<a href="https://X.com/metal/large-gm-cat/">
<h3>Large GM Cat</h3>
<p> $165-$256/each </p>
</a>
</div>
<div class="price ">
<a href="https://X.com/metal/large-foreign-cat/">
<h3>Large Foreign Cat</h3>
<p> $200-$351/each </p>
</a>
</div>
<div class="price ">
<a href="https://X.com/metal/xl-foreign-cat/">
<h3>XL Foreign Cat</h3>
<p> $350-$500/each </p>
</a>
</div>
<div class="price ">
<a href="https://X.com/metal/small-gm-cat/">
<h3>Small GM Cat</h3>
<p> $85-$168/each </p>
</a>
</div>
<div class="price ">
<a href="https://X.com/metal/small-foreign-cat/">
<h3>Small Foreign Cat</h3>
<p> $108-$149/each </p>
</a>
</div>
解决方案
在 for 循环中试试这个:
for entry in entries:
entry.find({'class': 'price'})
find_all 方法只返回“价格”类,而您希望每个条目都包含在“价格”类中。所以我们需要两种查找方法。
推荐阅读
- python - 线性回归的 Python sklearn r2_score 混淆
- laravel - 页面中的两个图表不起作用,在 Laravel 8.x 框架中使用 Chart.js 3.1.1 cdn
- java - 如何从 Java 中的另一个类更改对象值(看起来与 Arraylist 相同)?
- python - pstree 显示了一些 Gunicorn 工人产生了 25 个其他子 gunicorn 进程
- javascript - Angular:将 Google 登录信息保存在 LocalStorage 中
- python - 引发 TimeoutException(消息,屏幕,堆栈跟踪) selenium.common.exceptions.TimeoutException:消息
- sql - EF Core 生成导致 SQL Server 超时的基本查询
- arrays - 在 React 中将 2 个数组合并为 1 个数组
- node.js - 当我将反应应用程序与 json-server 一起部署时,如何修复 heroku 上的应用程序错误
- webpack - Rails 6 fontawesome 生产清除