( 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が光を当てることができることを望んでいました. 私の推測では、正規表現はいくつかの null データ、特殊文字などで爆発していますが、それを理解するのに十分なほど Python について知りません。文字列へのキャストも役に立ちませんでした。
これを実現するためのアイデアや回避策は大歓迎です!