初老のパイソナー

40才を手前にはじめてのプログラミングでPythonはじめました

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は文字列に対しては使えないと怒られてしまった。うーむ。最初の方でとりあえず進めよう。