从网站获取表属性

时间:2016-12-28 19:56:35

标签: python html visual-studio beautifulsoup python-3.4

我正在使用Python 3.4,Windows 10和Visual Studio 2015.我正在尝试制作一个程序来清除websites formatted like this one.中的电话号码  我正在使用Beautiful Soup 4,我正试着从床上拿到床的数量。我试过soup.select('.td')并且它只返回一个空数组,我不知道还有什么可以尝试。

1 个答案:

答案 0 :(得分:0)

为什么不将整个页面HTML作为字符串抓取,然后使用正则表达式来解析它?这不是Python擅长的地方吗?

如果你害怕正则表达式,这是一个初学者友好的教程: https://regexone.com/

Python的语法可能略有不同: https://docs.python.org/2/library/re.html

我真的希望你不是为了恶意目的而刮掉电话号码。我不想接你的电话: - )。

这是另一个Stack Overflow答案,它给出了一个很好的起始正则表达式: https://stackoverflow.com/a/123666/5129424

这是一个7或10位数的正则表达式,允许扩展名,分隔符是空格,短划线或句点:

^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$

只是因为你可能会搞砸了#34;并不意味着你不应该尝试并测试它。无论你做什么,你都要受页面结构的支配,这可能会改变,或者电话号码的格式也可能会改变。没有完美的解决方案。