从抓取的文本中提取非结构化地址和电子邮件ID作为变量-Python

时间:2020-07-31 05:27:17

标签: python-3.x web-scraping bots

我是python的新手,所以如果它看起来很简单,请原谅我。以下代码成功抓取了一个网页。有没有一种方法可以从此文本中提取地址,电子邮件ID和联系电话,并将其放在数据框中。我已经搜索了两种方法:-

  • 正则表达式-但是它可能无法正常工作,因为我有很多网站需要抓取,并且 地址可能并不总是以规则的方式构造。
  • Pyap-仅适用于美国和加拿大地址。

除了上述两种方法以外,还有没有其他方法可以获取所需的详细信息:-

svm.fit(features,imgs_labels)

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

可以通过修改与大多数地址格式匹配的表达式来使用正则表达式> br>

import re

txt = ...
regexp = "[0-9]{1,3} .+, .+, [A-Z]{2} [0-9]{5}"
address = re.findall(regexp, txt)

# address = ['44 West 22nd Street, New York, NY 12345']

说明:

[0-9]{1,3}:1到3位数字,地址号码

(space):数字和街道名称之间的空格

.+:街道名称,出现任意次数的任意字符

,:城市前的逗号和空格

.+:城市,出现任意次数的任意字符

,:状态前的逗号和空格

[A-Z]{2}:从A到Z恰好是2个大写字符

[0-9]{5}:5位数字

re.findall(expr, string)将返回一个包含所有找到的匹配项的数组。