关于(在 Python 中提取 URL)我有一个后续问题。注意:我是 SO 和 Python 的新手,所以请随时纠正我的礼仪。
我从上面的帖子中提取了正则表达式,这对我来说很好:
myString = """ <iframe width="640" height="390" src="http://www.youtube.com/embed/24WIANESD7k?rel=0" frameborder="0" allowfullscreen></iframe> """
print re.search("(?P<url>https?://[^\s]+)", myString).group("url")
但是,我真正需要做的是遍历我之前从数据库中检索到的数据集。所以我做了下面,这给了我一个奇怪的错误,也在下面。
# Note: "data" here is actually a list of strings, not a data set
for pseudo_url in data:
print re.search("(?P<url>https?://[^\s]+)", str(pseudo_url)).group("url")
错误:
Traceback (most recent call last):
File "find_and_email_bad_press_urls.py", line 136, in <module>
main()
File "find_and_email_bad_press_urls.py", line 14, in main
scrubbed_urls = extract_urls_from_raw_data(raw_url_data)
File "find_and_email_bad_press_urls.py", line 47, in extract_urls_from_raw_data
print re.search("(?P<url>https?://[^\s]+)", str(pseudo_url)).group("url")
AttributeError: 'NoneType' object has no attribute 'group'
当我用谷歌搜索时,我发现了大量不相关的帖子,所以我希望 SO 能有所启发。我的预感是正则表达式在一些空数据、特殊字符等上被炸毁了,但我对 Python 的了解还不够,无法弄清楚。转换为字符串也无济于事。
任何想法或解决方法都将不胜感激!