【发布时间】:2019-05-24 06:47:55
【问题描述】:
我正在尝试抓取网页并将结果存储在 csv/excel 文件中。我正在为此使用美味的汤。
我正在尝试使用 find_all 函数从汤中提取数据,但我不确定如何捕获字段名称或标题中的数据
HTML 文件具有以下格式
<h3 class="font20">
<span itemprop="position">36.</span>
<a class="font20 c_name_head weight700 detail_page"
href="/companies/view/1033/nimblechapps-pvt-ltd" target="_blank"
title="Nimblechapps Pvt. Ltd.">
<span itemprop="name">Nimblechapps Pvt. Ltd. </span>
</a> </h3>
到目前为止,这是我的代码。不知道如何从这里开始
from bs4 import BeautifulSoup as BS
import requests
page = 'https://www.goodfirms.co/directory/platform/app-development/iphone?
page=2'
res = requests.get(page)
cont = BS(res.content, "html.parser")
names = cont.find_all(class_ = 'font20 c_name_head weight700 detail_page')
names = cont.find_all('a' , attrs = {'class':'font20 c_name_head weight700
detail_page'})
我尝试过使用以下 -
Input: cont.h3.a.span
Output: <span itemprop="name">Nimblechapps Pvt. Ltd.</span>
我想提取公司名称——“Nimblechapps Pvt. Ltd.”
【问题讨论】:
-
贴出你试过的代码,具体问题是什么。
-
@ScottHunter 完成!请检查问题的编辑版本
-
你想要
cont.h3.a.span.text? -
获取标签属性使用
tag[attr],获取标签文本使用tag.text。请注意,.find_all()返回一个元素列表。如果您只想第一次使用.find()或按索引选择。 -
简单,选择每个元素的文本,例如:
for tag in cont.find_all("span", itemprop="name"): print(tag.text)
标签: python html web-scraping beautifulsoup