【发布时间】:2015-10-19 09:38:57
【问题描述】:
我在从网页中提取信息方面需要帮助。我给出了 URL,然后我需要提取联系号码、地址、href、人名等信息。我能够完全提取页面源,以获得具有已知标签的所提供 URL。但是我需要一个通用的源代码来从任何 URL 中提取这些数据。我使用正则表达式来提取电子邮件,例如
import urllib
import re
#htmlfile=urllib.urlopen("http://www.plainsboronj.com/content/departmental-directory")
urls=["http://www.plainsboronj.com/content/departmental-directory"]
i=0
regex='\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b'
pattern=re.compile(regex)
print pattern
while i<len(urls):
htmlfile=urllib.urlopen(urls[i])
htmltext=htmlfile.read()
titles=re.findall(pattern,htmltext)
print titles
i+=1
这给了我一个空列表。任何帮助提取我上面所说的所有信息将不胜感激。 这个想法是提供一个 URL 并以 json 或 xml 格式提取所有信息,如姓名、电话号码、电子邮件、地址等。提前谢谢大家...!!
【问题讨论】:
-
你确定你的正则表达式是正确的吗?我已经下载了您正在访问的文件,并按照您的表达式进行过滤,结果因我使用的正则表达式类型而异(我使用了 Ultra Edit 文本编辑器(Perl 和 UNIX 正则表达式)和 Cygwin UNIX 模拟器)。请注意,正则表达式语法取决于底层技术。
-
当我在 python 脚本中运行正则表达式时,它可以正常工作。请建议我一些东西来实现我的其余目标。我什至将regexr.com 上的正则表达式与样本进行了比较,效果很好
标签: python json xml parsing web-crawler