您需要的所有项目都在<div class="col-md-3 col-sm-3"> 标记内。并且,除了General Information 之外的所有项目都遵循特定的格式:第一个div 标签是标签,第二个是相应的文本。因此,您可以简单地找到它们,然后将它们交替打印为标签及其文本。
因此,除了 一般信息 之外的所有内容都可以在 <div id="fldFirm"> 标记中找到。由于 General Information 不遵循上述格式,因此您必须先单独抓取它。您可以使用limit=2 获取前两个标签。
import requests
from bs4 import BeautifulSoup
r = requests.get('https://s3.amazonaws.com/todel162/test.html')
soup = BeautifulSoup(r.text, 'lxml')
gen_info = [x.text.strip() for x in soup.find('div', id='divInfoType').find_all('div', class_='col-md-3 col-sm-3', limit=2)]
print('{}: {}'.format(gen_info[0], gen_info[1]))
all_info = [x.text.strip() for x in soup.find('div', id='fldFirm').find_all('div', class_='col-md-3 col-sm-3')]
for i in range(0, len(all_info), 2):
print('{}: {}'.format(all_info[i], all_info[i+1]))
输出:
Information Type: Other Than Individual
Name: Bellissimo Developers Thane Private Limited (Lodha Developers Pvt Ltd)
Organization Type: Company
Description For Other Type Organization: NA
Do you have any Past Experience ?: No
Block Number: 412, Floor 4 17G
Building Name: Vardhaman Chamber
Street Name: Cawasji Patel Road
Locality: Fort
Land mark: Horniman Circle
State/UT: MAHARASHTRA
Division: Konkan
District: Mumbai City
Taluka: Mumbai City
Village: Mumbai City
Pin Code: 400001
Office Number: 02261334263
Website URL: www.lodhagroup.com
编辑:
要创建数据框,您可以使用:
gen_info = [x.text.strip() for x in soup.find('div', id='divInfoType').find_all('div', class_='col-md-3 col-sm-3', limit=2)]
all_info = gen_info + [x.text.strip() for x in soup.find('div', id='fldFirm').find_all('div', class_='col-md-3 col-sm-3')]
df = pd.DataFrame({'A': all_info[0::2], 'B': all_info[1::2]})