【发布时间】:2020-09-13 07:53:30
【问题描述】:
我正在使用 bs4 来提取网页的 html 并将每一行拆分为一个列表,以便我可以提取我想要的那些。 (不确定这一步是否通过更改数据类型使下一个步骤变得不可能,如果是,那么执行此步骤的更好方法是什么?)
一旦我有了这个缩小的列表,我就会得到如下所示的单个列表元素:
忽略第一个 之后的空格,否则我无法显示此内容
< div class="row srpVehicle hasVehicleInfo" data-bodystyle="SUV" data-cpo="False" data-engine="V8 engine" data-extcolor="Red" data-extcolorcode="" data-fueltype="Gasoline Fuel" data-intcolor="Jet Black" data-intcolorcode="" data-make="Chevrolet" data-model="Tahoe" data-modelcode="1123706" data-mpgcity="16" data-mpghwy="20" data-msrp="0" data-name="2020 Chevrolet Tahoe LT" data-price="58995" data-stocknum="32948" data-trans="Automatic" data-trim="LT" data-vehicleid="0" data-vehicletype="new" data-vin="1G555555555" data-year="2020" id="srpVehicle-1GNS555513555">
我想提取这些数据点中的每一个; data-bodystyle、data-engine、data-model等,并放入字典中,稍后转换为json。
输出示例:
{'data-bodystyle':'SUV',
'data-engine':'V8',
'data-model':'Tahoe'}
使用 bs4 方法是否有更简单的方法来完成此任务?目前,当我缩小范围时,我使用字符串拆分和其他一些操作来提取数据点,但这似乎不能有效地工作。
【问题讨论】:
-
非常感谢苏珊斯。您的回答和此链接对指导我找到解决方案非常有帮助。非常感谢!
标签: python python-3.x beautifulsoup