数据抓取 --Beautiful Soup库的使用问题(2) 使用 find_all,Tag 和 find 基本解决爬虫中的95%以上有难度的需求
在爬取数据的时候我们会使用find或者find_all 来定位tag标签的位置。
举例:通常使用 class_ 或者 id 都能找到对应的。
# 5.前台价格
retail_price = soup.find(id='slice-pdp').strong.get_text()
但是如果碰到像其它的定位符的时候,上面的公式经常就会报错了。
举例:要找到服装的这个文本,
<a href="/cn/shopping/women/clothing-1/items.aspx" class="_7fe79a _49f7ca _8f992f" data-ffref="pp_top_bc&pos=3&name=/cn/shopping/women/clothing-1/items.aspx" data-type="category" itemprop="item" itemtype="http://schema.org/Thing"><span itemprop="name">服装</span></a>
<span itemprop="name">服装</span>
那么使用
type1_item = soup.find('span', 'itemprop'='name').get_text()
结果就会报错。
方法:改为字典寻找就可以定位到了。
soup.find(id='slice-pdp').find('span', {'itemprop':'name'}).get_text()