【发布时间】:2012-01-26 06:19:32
【问题描述】:
我正在尝试抓取一些内容(我对 Python 非常陌生),但遇到了一个绊脚石。我要抓取的代码是:
<h2><a href="/best-sellers/sj-b9822.html">Spear & Jackson Predator Universal Hardpoint Saw - 22"</a></h2>
<p><span class="productlist_mostwanted_rrp">
Was: <span class="strikethrough">£12.52</span></span><span class="productlist_mostwanted_save">Save: £6.57(52%)</span></p>
<div class="clear"></div>
<p class="productlist_mostwanted_price">Now: £5.95</p>
我要抓取的是链接文本(Spear & Jackson 等)和价格(5.95 英镑)。我在 Google、BeautifulSoup 文档和这个论坛上进行了查看,我设法使用以下代码提取了“现在:5.95 英镑”:
for node in soup.findAll('p', { "class" : "productlist_grid_price" }):
print ''.join(node.findAll(text=True))
但是我追求的结果只是 5.95。我尝试使用以下方法获取链接文本(Spear & Jackson)也取得了有限的成功:
soup.h2.a.contents[0]
当然,这只会返回第一个结果。
我的最终目标是让结果看起来像:
Spear & Jackson Predator Universal Hardpoint Saw - 22 5.95
etc
etc
当我希望将其导出到 csv 时,我需要弄清楚如何将数据放入 2 列中。就像我说我对 python 很陌生,所以我希望这是有道理的。
感谢您的帮助!
非常感谢
【问题讨论】:
标签: python screen-scraping beautifulsoup