使用Python从几个唯一站点搜索联系信息

时间:2013-06-28 14:03:30

标签: python web-scraping beautifulsoup screen-scraping

我想从大约1000-2000个不同的餐馆网站上搜索联系信息。几乎所有这些都在主页或某种“联系”页面上都有联系信息,但没有两个网站完全相同(即,没有共同的模式可以利用)。我怎样才能可靠地从这些网站中抓取电子邮件/手机#info,而无需将Python脚本专门指向页面上的特定元素(即,脚本需要与结构无关,因为每个网站都有一个独特的HTML结构,他们不会'例如,所有人都有“联系人”div)中的联系信息。

我知道没有办法编写一个100%有效的程序,我只想最大化我的命中率。

关于这一点的任何指导 - 从哪里开始,阅读什么 - 将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:1)

在大多数国家/地区,电话号码遵循极少数明确定义的模式中的一种,可以与简单的正则表达式匹配 - 同样电子邮件地址具有国际公认的格式 - 只需抓取主页,联系人或联系我们页面然后解析正则表达式 - 你应该很容易达到90%以上的准确度。

当然,您只需将餐馆名称和城镇提交到当地的黄页网站即可。

答案 1 :(得分:1)

查看python的正则表达式模块。 您可以编写一个简单的表达式,如:

re.search(u"\(\d{3}\) \d{3}-\d{4}",string)

找到任何标准格式的电话号码字符串(美国号码)。 它看起来像胡言乱语,但一旦你这样做,它应该会使网络抓取变得无比容易。 这是一个不错的入门教程:

http://www.tutorialspoint.com/python/python_reg_expressions.htm

如果您遇到太多动态网页,我还强烈推荐使用Selenium进行网页抓取:

https://pypi.python.org/pypi/selenium