httpを含むものと指定したのに"//www.facebook~"みたいなのが出てくる
問題:http を含むものをピックアップしたいのに //.wwwみたいなのが出てくる
指定のページ内のソースから「http」を含むものをピックアップしようとしているのに
//www.facebook.com/share.php?app_id=&ref=plugin&u=https%3A%2F%2hogehoge.com%2
みたいな httpがないものまで出てきてしまう。
解決策:条件を厳しく指定
if link_url is not None and 'http' in link_url
※link_url はソース内にあるURL文字列
だとダメだったので、もっと条件をきっちり指定しちゃおうと。
if link_url is not None and ('https:' in link_url or 'http:' in link_url)
としたらいけた。
最初は
if link_url is not None and 'https:' in link_url or 'http:' in link_url
としていたけど or が優先されるというのを以下ページで知って対処。
【Python入門】ブール演算子(and・or・not)の使い方 - Qiita
失敗した解決策:startswithで対応
そして、後で気付いたんですが途中にhttpがあるじゃないか!
//www.facebook.com/share.php?app_id=&ref=plugin&u=https%3A%2F%2hogehoge.com%2
こんなときは「httpで始まるものだけ」 というのがあったはず・・・と調べる。
が、starswithは文字列に対しては使えないと怒られてしまった。うーむ。最初の方でとりあえず進めよう。