当从网站中提取时,我试图将两个地址行拆分为两个不同的变量,但有些位置只有一个地址。我发现两个地址行之间通常有逗号、科林或句点。我正在提取所有位置,该网站就是一个有两条地址线的位置示例。在这种情况下,地址1是铁杉路2号,第二个地址是邮政信箱904号。在没有2个地址的其他情况下,地址2应为空
这是网站:https://www.winmar.ca/find-a-location/#267
这是Python代码,也是网站的html
location_address1 = soup.select_one(f"[data-id='{num}'] .heading:contains('Address') + p").contents[0].strip()
location_address2 = ','.join(location_address1.split(',|.|:')[1:])
<p>
2 Hemlock Rd. PO Box 904
<br>
Corner Brook, NL
<br>
A2H 6J2
</p>
您可以确定行的长度,并相应地将文本解析为变量。见下面的例子
输出:
地址行1: 铁杉路2号邮政信箱904 地址行2: 角溪,NL
您需要选择更好的HTML,这里是解决方案。我使用了CSS选择器,因为它更准确;因为没有xPath在您的服务器上。在得到所有我们需要的东西后,将对象转换为文本,然后围绕可用的内容工作;然后在这里,我们分割行并删除换行符以获得更好的缩进
运行代码:
产出:
相关问题 更多 >
编程相关推荐