首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在CSS类中提取文本

在CSS类中提取文本
EN

Stack Overflow用户
提问于 2018-04-01 05:38:46
回答 2查看 347关注 0票数 1

试图从网页提取数据到表。例如:

代码语言:javascript
运行
AI代码解释
复制
Block Number XXX
Building Name YYY
Street Name zzz
Pin Code 123456789

我试着用这个代码以表格的形式得到公司的所有细节.

代码语言:javascript
运行
AI代码解释
复制
html_doc='https://s3.amazonaws.com/todel162/test.html'

from urllib.request import urlopen
from bs4 import BeautifulSoup

soup = BeautifulSoup(urlopen(html_doc), 'html.parser')

mydivs = soup.findAll("div", {"class": "row"})

for i in mydivs:
    for x in i.findAll("div", {"class": "col-md-3 col-sm-3"}):
        print (x)
        print ('new x')

但我不知道如何提取特定CSS类的HTML标记中的文本。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-01 22:40:10

您需要的所有项目都在<div class="col-md-3 col-sm-3">标记中。并且,除了General以外的所有项目都遵循特定的格式:第一个div标记是标签,第二个是相应的文本。因此,您可以简单地找到它们,然后交替打印它们作为标签和它的文本。

因此,除了通用信息之外,其他所有内容都可以在<div id="fldFirm">标记中获得。由于通用信息不遵循上述格式,因此您必须先逐个对其进行刮除。您可以使用limit=2获取前两个标记。

代码语言:javascript
运行
AI代码解释
复制
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]))

输出:

代码语言:javascript
运行
AI代码解释
复制
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

编辑:

要创建一个dataframe,可以使用以下内容:

代码语言:javascript
运行
AI代码解释
复制
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]})
票数 1
EN

Stack Overflow用户

发布于 2018-04-01 06:30:15

你只是想要地址信息还是整个列表?这是整个清单的代码。

代码语言:javascript
运行
AI代码解释
复制
html_doc='https://s3.amazonaws.com/todel162/test.html'

from urllib.request import urlopen
from bs4 import BeautifulSoup
import re

soup = BeautifulSoup(urlopen(html_doc), 'html.parser')

mydivs = soup.findAll("div", {"class": "form-group"})

for x in mydivs:
    print (re.sub( '\s+', ' ', x.text ).strip())
    print ('#############')

产出:

代码语言:javascript
运行
AI代码解释
复制
Information Type Other Than Individual
#############
Name Bellissimo Developers Thane Private Limited (Lodha Developers Pvt Ltd)
#############
Organization Type Company
#############
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
#############

如果您想在表中使用它(非常简单的例子):

代码语言:javascript
运行
AI代码解释
复制
...
mydivs = soup.findAll("div", {"class": "form-group"})
print ("<table>")
for x in mydivs:
    label = x.find('label')
    if label is not None:
        print ("<tr><td>" + label.text + "</td><td> ")
        label.extract()
    else:
        print ("<tr><td></td><td> ")
    print (re.sub( '\s+', ' ', x.text ).strip())
    print ('</td></tr>')
print ("</table>")

产出:

代码语言:javascript
运行
AI代码解释
复制
<table>
<tr><td>Information Type</td><td> 
Other Than Individual
</td></tr>
<tr><td>Name</td><td> 
Bellissimo Developers Thane Private Limited (Lodha Developers Pvt Ltd)
</td></tr>
<tr><td>Organization Type</td><td> 
Company
</td></tr>
<tr><td></td><td> 
Do you have any Past Experience ? No
</td></tr>
<tr><td>Block Number</td><td> 
412, Floor 4 17G Building Name Vardhaman Chamber
</td></tr>
<tr><td>Street Name</td><td> 
Cawasji Patel Road Locality Fort
</td></tr>
<tr><td>Land mark</td><td> 
Horniman Circle State/UT MAHARASHTRA
</td></tr>
<tr><td>Division</td><td> 
Konkan District Mumbai City
</td></tr>
<tr><td>Taluka</td><td> 
Mumbai City Village Mumbai City
</td></tr>
<tr><td>Pin Code</td><td> 
400001
</td></tr>
<tr><td>Office Number</td><td> 
02261334263
</td></tr>
<tr><td>Website URL</td><td> 
www.lodhagroup.com
</td></tr>
</table>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49598651

复制
相关文章
Word VBA技术:使用VBA操控剪贴板
很简单的一些代码,可能不太常用,所以不会太关注。然而,一旦遇到要使用的情形时,如果了解,就能马上拿来使用。因此,收集在这里备用,也希望能够给有兴趣的朋友提供参考。
fanjy
2023/02/16
2.6K0
iOS TableView多级列表
TableView多级列表的实现效果预览图 需求 TableView多级列表:分级展开或合并,逐级获取并展示其子级数据,可以设置最大的层级数,支持多选、单选、取消选择。 示例Demo:MultilevelList 思路 由需求和示意图可知,这些数据元素之间存在着一对多关系,很符合 数据结构与算法 -- 树形结构 的特征。那么,我们就用树形结构中的结点(Node)来作为存储和关联数据的模型(NodeModel)。 //每个结点信息,采用的是树状结构模型 关于树状结构不了解的可以看看
且行且珍惜_iOS
2019/03/04
2.3K0
iOS TableView多级列表
android多级树形列表
我们开发app过程中,经常会碰到需要 多级列表展示的效果。而android原生sdk中根本没有3级 4级甚至更多级别的列表控件。
再见孙悟空_
2023/02/10
2.5K0
android多级树形列表
HTML中使用js实现多级列表联动-实例省级列表联动
田小檬
2023/08/24
4650
word——VBA编程「建议收藏」
最近需要批量操作一些word文件,大约四十几个文件把。一个一个手动操作真的太low了,所以研究了一下word的宏,VBA编写代码,批量操作。 操作就是全选Word内容,给整体加一个书签PO_table。 选中文档中检测二字,加书签PO_jc。 选中 年 月 日,删除该选中内容。
全栈程序员站长
2022/08/12
1.4K0
Word VBA技术:处理书签
1.“占位符”书签(Placeholder Bookmarks),即在文档中单击某处,然后插入的书签。
fanjy
2023/02/16
1.2K0
使用VBA基于列表移动工作表
问题:工作簿中有一个汇总(Summary)工作表,它需要计算开始(Begin)工作表和结束(End)工作表之间的所有工作表中的数据,如下图1所示。
fanjy
2022/11/16
9470
使用VBA基于列表移动工作表
可折叠列表ExpandableListView多级选择
上一期学习了AutoCompleteTextView和MultiAutoCompleteTextView,你已经掌握了吗?本期开始学习ExpandableListView的使用。 一、认识ExpandableListView ExpandableListView 是 ListView 的子类,它在普通ListView的基础上进行了扩展,它把应用中的列表项分为几组,每组里又可包含多个列表项。 ExpandableListView的用法与普通 ListView的用法非常相似,只是 Exp
分享达人秀
2018/02/05
2.6K0
可折叠列表ExpandableListView多级选择
在Excel中使用VBA来自动化Word
本文演示的例子是,在Excel中使用VBA打开新的Word文档,复制Excel图表并粘贴到这个文档中。同时,介绍了一种你不熟悉Word VBA的情形下怎样获取相关的代码并在Excel中使用的方法。
fanjy
2023/08/30
9370
在Excel中使用VBA来自动化Word
Word VBA技术:确定文档页数
前言:专门讲Word VBA的文章很少,可能专门研究Word VBA的人不多,与Excel VBA相比,Word VBA似乎用处少一些,这可能是对Word VBA了解不多的缘故。然而,无论如何,懂得一些Word VBA的知识,或者平时收集一些Word VBA代码,在需要用时或者在考虑解决方案时,往往能够起到作用。
fanjy
2023/02/16
7200
使用 VBA 将 Excel 数据导入到 Word 表格中
现要求将一个 Excel 数据表中的每行数据导成一个 Word 文档,即有多少行数据就生成多少个 Word 文档,Excel 每列与 Word 文档中的表格项一一对应。
mzlogin
2020/04/16
4.9K0
使用 VBA 将 Excel 数据导入到 Word 表格中
现要求将一个 Excel 数据表中的每行数据导成一个 Word 文档,即有多少行数据就生成多少个 Word 文档,Excel 每列与 Word 文档中的表格项一一对应。
零式的天空
2022/03/24
4.8K0
Excel: 通过VBA代码打开word文件
文章背景:在使用Excel的Userform时,有时想要打开指定路径的word文件。下面介绍打开word文件的一种方式。
Exploring
2022/09/20
3.9K0
Excel: 通过VBA代码打开word文件
Django 2.1.7 Admin - 列表页选项
https://docs.djangoproject.com/zh-hans/2.1/intro/tutorial07/
Devops海洋的渔夫
2019/07/08
1.1K0
Django 2.1.7 Admin - 列表页选项
使用VBA自定义函数创建数字序列
如果是手工操作,当数据间隔很大或者数据较多时很麻烦,也需要相当长的时间才能完成。然而,可以使用一个由VBA编写的自定义函数轻松实现。
fanjy
2022/11/16
1.1K0
使用VBA自定义函数创建数字序列
VBA专题06-2:利用Excel中的数据自动化构建Word文档—熟悉Word VBA
VBA是一种通用编程语言,适用于任何内置有VBA的应用程序,因此Word VBA与Excel VBA的语法一样,只是处理的对象模型不同。下面,我们通过一些示例语句及其作用描述来熟悉Word VBA。(注:这些语句来源于作者早期发表的VBA语句集,长期关注作者的朋友可能会有印象)
fanjy
2019/10/09
2.8K0
VBA专题06-2:利用Excel中的数据自动化构建Word文档—熟悉Word VBA
VBA专题10-21:使用VBA操控Excel界面之禁用和启用控件、组和选项卡
通过分别使用enabled属性和getEnabled属性,可以在设计时永久地或者在运行时动态地禁用(和启用)内置控件。被禁用的控件在功能区中显示的是灰色。
fanjy
2021/03/26
3.5K0
VBA专题10-21:使用VBA操控Excel界面之禁用和启用控件、组和选项卡
点击加载更多

相似问题

word vba中无缩进的多级列表

111

使用VBA在MS Word多级列表标题中插入文本

11

从Word到Excel的多级列表

10

Word 2010在多级列表中创建目录

32

使用VBA排序-多级排序

129
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文