初老のパイソナー

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

ラジオショッピングで大玉水晶が紹介されていた件

ラジオショッピング、聞いてる?

ラジオ、聞いてますか?

私は聞いています。子どもを保育園に送迎するときに。地方局のラジオって番組の内容のほとんどがスポンサード広告だなぁ・・・と思いつつね。

中でも興味深く聞いているのがラジオショッピング。普通に聞いていると毎度のように同じトーク内容で飽きてくるし「またか」となりがち。

検索候補でも ●●●● ラジオショッピング うざい

などと表示されてしまう始末。わかる。わかるよ。

マーケ担当、ラジオショッピングに魅了される

私はラジオショッピングを聞きながら、

  • ラジオパーソナリティって仕事も大変だなあ・・・
  • 自分の思いに反してもセリフ言わないといけないしなあ・・・
  • ある種の役者かなあ・・・役者は役名で演じるから別で考えられるか・・・
  • 本名に紐づけて「アノ人が紹介してたし」て言われるよなあ・・・
  • 自分で紹介したくないと思うものは紹介したくないな・・・

とか思ってます。

マーケティング的に「こういう紹介で売れるのかなあ」とも思いつつ聞いてます。
カニは売れそうだな。酸素濃度測定計も有りっちゃありか。体温計も売れるか。なんて思いつつ。

先日、そんなもん売れるの?という商品がありましてね。

それが「大玉水晶」です。

f:id:python40:20220222050828p:plain

水晶

食事のように美味しいようすを想像できるわけでもなし。サプリのように「膝が痛いのが治る」みたいなのでもなし。ユーザー側のベネフィット的なもんを全然想像できなかった。

内容が全く入ってこない大玉水晶のラジオショッピング

当時の放送の内容がぜんぜん頭に入って来なかったのでウェブサイトを見ると、

  • 魔除け
  • 邪気
  • 殺気

みたいな謎ワード。

浄化作用が・・・とかの言葉が並ぶ。

一番目に入るのは、希望小売価格からの値引き額が大きいこと。

水晶なんて原価もよくわからないので、高いか安いかもよくわかりませんでした。

オカルト層へのアプローチを狙った商品なのかな・・・?ともかく全然売れそうなイメージができなかったんですが、果たして売れていたのだろうか。

ラジオショッピングでは、売れているものは何度も紹介するので今後も大玉水晶が紹介されるかには、個人的にとても注目しています。

ぷにるんず入荷お知らせプログラムをPythonで作成した結果

f:id:python40:20211123081921j:plain

ぷにるんず

娘ちゃんがクリスマスプレゼントをサンタさんにおねだりしてました。

 

サンタさん、ぷにるんずのパープルをください。

 

ぷにるんずはたまごっちみたいな育成ゲーム。どうやらバカ売れ中。Amazonを調べると12,000円とかになっていて「たか!」と定価を調べると6000円くらい。さすが転売ヤーたち・・・

ちなみに楽天などを調べてみても軒並み10,000円超え。転売ヤーだけじゃなくて楽天のショップとかもえげつないな。

ぷにるんずを定価で買える店を探す

ぷにるんずが売り切れならたまごっちが良いです。

と娘ちゃんは代替案もサンタさんへの手紙にしたためていたけれど、サンタさんとの連絡役をしている身としてはぷにるんずを手配してあげたい。

で、定価で買える店を探していたら見つけた。

ビックカメラヨドバシカメラ。ただ「在庫なし」「販売終了」になっている。前置きが長くなったけれど、ここでPythonの出番である。

ビックカメラにぷにるんずが入荷したらLINEで通知する

ビックカメラのぷにるんずのページを1日1回確認する

②在庫なしだったらスルー

③入荷していたら自分のLINEに通知

④すかさず購入する

完璧な作戦。

サイトのスクレイピングはこれまでにもやってきたのでBeautifulSoupでサクッと完了。今回の問題は定期的に確認させる方法だった。cronというのを使えば良いことは知っていたけれどサーバーでpythonを動かさねばならぬ。

エックスサーバーを借りていたのでこれを利用して実施。Anacondaを入れ、SSHでなんちゃらかんちゃらして無事インストール完了。

WinScpで鍵を作成したので、コンソールもこれでいじれるかなと思ったらうまく行かず、TeraTermを使わねばならないことに気付くのに少し時間がかかった。途中、うまくスクレイピングが効かなかったりしても、これまでの経験が役に立って順次解決。

URLが間違えてないのに404が返ってきたらヘッダー情報を追加することで通過。

自分PCでPythonのコードを作成後、サーバー上においたあとに躓いたのは、Pythonを実行するときに

import requests がうまく効かなかったこと。これは

import sys
sys.path.append('/home/*******/anaconda3/lib/python3.8/site-packages')

でパスを書いてあげるとちゃんと動いた。

def ~ という便利な奴も使えるようになってきて万々歳。

 

あとはcronを設定して終了。1日2回だけチェックして通知することにした。

ぷにるんず入荷お知らせプログラム作成後

ビックカメラのページに対してはできたので、あとはヨドバシカメラもやっておくか、と着手。ページを見るとオンラインショップでは「販売は終了しました」とあるものの、在庫がある店舗も存在する様子。

最寄り店舗を見てみると「●月●日までにご用意できます」のようなことがある。え?と思いつつ最寄り店舗に電話すると「あ、今入ってきましたので確保しました」と。

マジかよ。

と、結局プログラムは完成後に威力を発揮することはなかったものの、娘からのサンタさんへのお願いは叶えられることができたのでありました。

めでたしめでたし。

instagramで副業系などを除外していいね!する

できた!

ついさっきできたので嬉しくて書いておく。

 

自動でいいね!するプログラムを色んなページを参考にしつつ作成していたわけです。でも「いいね!」済なのに、またいいねボタンを押して解除してしまうことがあった。

これは、いいね!ボタンの文言が「いいね!」を取り消す だったらスルーするというプログラムを加えて解消。

次は、超どうでも良いというか無関係そうなアカウントにいいねするのを避けたくなった。

で、やったこと。

最初は if ●● in テキスト でやっていたけど、これだと 言葉が増えるたびに or を増やすのが面倒だった。

ということで

out_word = '副業,投資,シャネル'

のように除外したいキーワードを設定。

re.findallでテキスト内の除外ワードを見つけ出し、len(~)で0より多かったらスルーするというようにした。

これで、除外したいキーワードが入っていれば完全にスルーできるようになったし、キーワード管理も楽に。

 

何気に大変だったのは、そこに至るまでの過程でのselenimで吐き出されるタグが、意味不明だったこと。これは

●●.text

とすれば見えることがわかり、これをprint(●●.text)で確認しながら進めたらサクサク進むことができた。

 

instagramでいいね!済をスルーしていいね!はできた

instagramでいいねしてフォロワー増やそう作戦をpythonで実施中。

いいねをしていると気になることが。

タグで検索⇒いいねを連発 としていると「ラーメン」での検索と「とんこつラーメン」で同じ投稿が出てきて既にいいね済みなのに再度いいねボタンを押してしまい、解除してしまうことがある。

そんなわけでいいね済のものはスルーしていくべく改良に取り組んだ。

といっても、検索とコピペとカスタマイズと検証を繰り返して、やっとこさで。

seleniumでのタグ取得の過程で、xpathとやらの意味を理解せずにゴリ押ししようとしたらやっぱり無理で、きちんとまとめておいてくださっていたページを見てある程度理解したら、やっとこさ進めました。急がば回れですね。

いいね!済みのは回避してポチポチしていけるようになったので、次は副業系とか「どう考えても関係ないだろう」という投稿にいいねせずにスルーできるようなものにしようと思う。

本当は画像がラーメンか自動解析して「超おいしそうなラーメンですね!」とか種別コメントをかけるようになると面白いなと思っていますが、それはまだまだ先だな。

 

Instagram作戦を強化するのにPythonを使うことにした

仕事でInstagramを使うことにしました。フォロワー数を増やすための作戦を練っていて、いくつかの方策を決めました。全部手動でやるのは大変なのでPythonで自動化することにしました。

Instagram稼働初期段階

投稿内容のコンセプトは決まりましたので、フォロワー数を増やそうと。

ただし無関係の人のフォローを狙うようなことは行いません。エンゲージメント率を高めることを重視したい。

でもやっぱりフォロワー数もほしい。

フォロワー数を増やすためには地道ではあるものの、色んなところにコメントしたりいいねしたりの活動が必須になるな、と。コメントをしまくってみた結果、労力の割にフォロワーは増えづらかったので、作戦変更でいいねしまくることに。

自動でいいねをしてくれるツールを探すとたくさんありましたが、月に1000円くらいかかったりしたので、これこそPythonじゃないかと気付いて調べるとたくさんありました。そこでPythonで動かしてみたら、ちゃんとせっせといいねしてくれる。

そして、時にはコメントをしにきてくれたりフォローしてくれたり。

 

・いいねしまくる

・フォローしてくれる人で今後もお付き合いできそうな人はフォロー返し

・エンゲージメント率を高められる人を集める

 

今のところはココまで。

今後やりたいこととしては、

 

・タグの表記の揺れや類語のものまでをカバーしたい

・いいねする投稿の選別(無関係そうなものの排除)

・自動でのコメント(画像に合わせてのイケてるコメント)

・フォローしている人への自動いいね

・インスタのフォロワー数などの推移の取得

 

フォローワー数が少ないうちから数千単位のインスタグラマーをフォローして絡むのは無理でしょうし、フォロワー数が少ない人が集まるコミュニティみたいなところに潜り込んでしまおうかと。

自動いいねをするタグの選別が重要になってきそう。

あと、いいねする投稿の選別のためには画像の自動解析みたいなのが必須かな。超ややこしくなりそうなのでまだまだ先になりそうだけども、新しい勉強ネタが見つかってウキウキだ!

2020年8月時点でできていること

仕事で使っているものばかりで、プライベートでおもしろ系プログラムとかを作ってみたいという思いは未だにできていない。そんなわけで現在できているこというか、主にやっていることをメモ。

IPアドレスをキーとして大量のログデータからユーザーごとのページ閲覧履歴をエクセルに書き出す。

その後はエクセルでCOUNT関数を使って「コンバージョンに至る人はどのページをみているのか」を計測している。

エクセルデータを内容に応じて別の形式で書き出し

エクセルに入力されているデータ形式

品目 個数 単価 売上 で並んだものや

問1 問2 問3 問4 で並んだものや

名前 氏名 年齢 住所 で並んだものや

いくつかのエクセルファイルがあって、それらを別の形式で書き出さなきゃいけない。ファイルごとの特徴から書き出し形式を特定して、それぞれに合わせた形で書き出す。

(すごいしょぼい仕事のようにしか書き出せないのがもどかしい)

その他、例をあげようと思ったんですが、大量にあるファイルをダダダダー!と一気に変換したり調べるのばっかりに使ってる。プログラムなんだからそれで当然っちゃ当然なのかもしれんけど。

課題認識:動けば良い。だけで改良ができてない

プログラムの書き方は大抵似通ってしまっていて、改良の余地は多分にありそうなのですが「結果として出てくればOK」みたいなスタンスでやってしまっているので今ひとつプログラミングのレベルがあがった感がない。

例えば AAA を BBB に変えて CCC を DDD に変えるみたいなときにreplaceを1行ずつ書いていたりしてたのだ。

replace('AAA','BBB').replace('CCC,'DDD') みたいな書き方で一気にできたときは感動ともに「早く言ってよぉ~」と誰かに言いたくなった。(一人ぼっちなので誰も突っ込んでこないのだ)

あと、def とか リスト内包なんとか・・・もいまいち使い所や使い方がわかっていなくて、本を見ながら「なるほどな」とわかった気がしたことはあるものの、やはり実践で使ってみないと落とし込めていないことを実感しているのであった。

写経とかをしてみようかなと思ったんだけども、わからないところがあるとそこで止まってしまう。中学生か高校生の頃の受験勉強のときのようである。基礎からコツコツやっていない弊害がこんなところに。本を最初からちまちま読みすすめるのは苦手だけど、それをせねばならんか・・・という今日このごろである。

 

現在のpythonのお勉強状況

記事は全然更新していないけど仕事ではpython(pycharm)を使って少しずつラクにしています。

ただ1つ使えるようになるとそればかり使ってしまって、進化がない。超初歩段階でレベルキャップ5くらいのキャラをレベル5まで強くしたあと、そのままで行けるダンジョンばかりクリアしている感が否めません。

「独学プログラマー」を読んで「ほえー def ってこうやって使うのか」と思ったり「 __init__ がよくわからん」と頭を痛めたりするところで止まってしまっています。

今、一番意味不明なのは「オブジェクト、インスタンス、クラス」あたりで「オブジェクト=もの、インスタンス=インスタントラーメン的イメージで簡単、クラス=教室」みたいな印象が真っ先に浮かんでしまい、全然頭になじまない。

文章で読んでもよくわからないものは手を動かすべし!というわけで仕事でpythonを使えばラクになりそうなものを見付けては取り組むの日々。

ただ、pythonで使っているのが

ウェブサイトをスクレイピングしてデータを取ってくる

単純なコピペ型の作業をテンプレート化したものに作り直す

程度なので使っているのが for , if , bs4 , select みたいなのばかり。覚えたばかりの魔法が使いたいので、def を使うシーンを探すけどそこまでややこしいものを作ってないのだ。(def は似たような処理を何度かするときに使うイメージ)

私がやってみたいのはウェブサービスみたいなのを作ることなので、pythonをサイト上で使うとなるとdjangoらしいぞ!と読んでみるも意味不明ワードの連発。とりあえずインストールして動かしてみる段階に進みたいが進まないのであった。