ノウハウツリーの管理人 のすべての投稿

C#+Seleniumでスクレイピングする時の俺的メモ


メモ書きとして残しておきます。

スクレイピングをする時にはいつもIEをC#から自動操縦して取得していましたが、Seleniumを使った方がむっちゃ楽でおすすめです。

Selenium(セレニウム)と読みます。

Seleniumには、Google Crome/Firefox/IEとそれぞれの代表的なブラウザに対応したDriverが出ています。

Visual Studioを使用してSeleniumのパッケージをダウンロードする場合

メニュー > プロジェクト > NuGetパッケージの管理(N)

からSelenium系を見つけてインストールしておきましょう。

詳しくはググって他のサイトみてください。

XPathを簡単に調べる方法

Cromeを開いて調べたいツールの上で右クリック > 検証(I) > Copy > Copy XPath

これむっちゃ便利。

一瞬でスクレイピングしたい要素のXPathを取得できちゃいます。

初めて知ったけどむっちゃ便利でした。

Chromeのバージョンがあがるとエラーが発生する

2019/4/30 Cromeをいつも通りC#から操作しようとしたところエラーが発生しました。

エラーの内容はこちらです。

session not created: Chrome version must be between 70 and 73
(Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Windows NT 10.0.17763 x86_64) (SessionNotCreated)

GoogleCromeのバージョンが74に上がった(手動で更新した)為に、Seleniumで使用するChromeDriverのバージョンを上げないと動作しない為に、このエラーが発生してしまっています。

GoogleCromeは原則として常に最新を使う事を推奨されています。

そこで私はChromeのバージョンをアップしました。

しかし、ChromeDriverが古くなり最新バージョン(74)に対応していない為に、今回のエラーが発生したという事です。

ChromeDiverのエラーでやったこと

メニュー > プロジェクト > 更新プログラム

Microsoft.Web.Xdt

Selenium.Chrome.WebDriver 

Selenium.WebDriver.ChromeDriver

更新モジュールが出ていたのでこれらを更新しました。

 


ワードプレスの危険なプラグイン 2019年4月版 yuzo-related-post ← クラック注意!!


ワードプレスの関連記事表示を行うプラグイン YUZO-RELATED-POST はクラックされていて危険

今回物騒なタイトルですが、これ本当です。

ノウハウツリー管理人が運営しているとある別サイトのお話でがこのプラグインがクラックされてサイトにアクセスすると別のページにリダイレクトされるという被害が出てました。

関連記事を表示するプラグインとして

yuzo-related-post

を入れていたのですが、このプラグインにセキュリティ上の脆弱性があり、サイトにアクセスすると他のサイトに飛ばされるというちとやばいことになってました。

てっきりindex.phpや.htaccessが書き換えられたのかな?

とWinSCPで接続して直接ファイルをのぞきましたが、それ自体は書き換えられていませんでした。

同じ様な症状になっている人は、速攻でWordPressのプラグインとして yuzo-related-post をアンインストールしましょう。これがその問題のプラグインです。

ワードプレスの一覧上の表示は

Related Posts 

Related posts so easy and fast

バージョン  5.12.90 作成者: Lenin Zapata

となっています。yuzo(ゆうぞう)という名前はどこにも表示されていません。

右側のプラグインのサイトを表示をクリックすると

こんな感じのページが表示されます。

インストールしている人は危険なのでマジで速攻消しましょう。

幸いな事にもWordPressの管理画面には問題無く入る事が出来ます。

http://サイト名/wp-admin

でログインし、インストール済のプラグインからRelated Postsを無効化して削除すれば問題解決します。

yuzo-related-postを入れてクラックされるとどうなるか?

このプラグインの脆弱性の為にサイトにアクセスすると何サイトもリダイレクトされてページが飛ばされます。

yuzo related postsのプラグインが入った状態で

サイトにアクセスすると

https://hellofromhony.com/goawy?temp=777&

にリダイレクトされます。

更にリダイレクトがかかって

hello23.icu の内容

Window 10 によってWindowsシステムが古くなり破損していることが
検出されました。

ファイルが削除されないように 指示にしたがってすぐ修正してください。

という完全にマルウェアに感染させようという魂胆丸見えのページに誘導されます。

ブラウザのタブを閉じてしまいましょう。

嘘っぱちです。

画面の指示に従っていくとマルウェアをインストールさせられてしまうので注意!!

タイミングによっては

ユーザ様、おめでとうございます

誠意あるGoogleユーザになって下さったことに、お礼を申し上げます!あなたのIPアドレスであるXXXは、無料の Apple iPhone XSを受け取っていただくために無作為に選択されています。

弊社では時々、一部のGoogleユーザを選択し、弊社パートナーやスポンサーからの有益なプレゼントを受け取っていただける機会を差し上げています。これは、あなたが優先して利用する検索エンジンとしてGoogleを選んで下さったことに対するお礼です。

今日はあなたにとってラッキーは1日です!無作為抽選により、このプレゼントを受け取っていただける10名のひとりとして、あなたが選ばれました。

これを受け取るには、この短い無記名アンケートにお答えください。ですが、急いで!本日のプレゼントは残り少なくなっています!

Googleにどのくらい満足していますか?

大変満足   満足   不満

この様にGoogleを装った偽ページが表示される事があります。

初めてこんな症状が出た時は結構焦りましたw

てっきりサーバのroot権限までクラックされてしまったのかと思ったのです。

ワードプレスの yuzo related posts  が諸悪の権化でした。

便利なプラグインでこれまで使っていましたが、クラックされる様な脆弱なプラグインは使うべきではありません。

もう二度と yuzo related posts は使いません!!

皆さんも怪しいプラグインには十分に注意してくださいね!

 


Visual Studio 2017でSelenium(セレニウム)を使う方法の纏め NuGetパッケージ必須だよ


Selenium(セレニウム)とは?

セレニウムとは、C#などのプログラム言語でブラウザ(Cromeなど)を自動操縦する際に使用します。

WEBシステムなどを作った際にテストを人間がちまちまやるよりも、そのテスト自体を自動化させた方が効率が良いです。

その為、WEBサイトのテストなどで使われる事が多いです。

(人様のサイトに悪い事しちゃだめよん♪)

あとは、スクレイピング(WEBサイトのデータを取得すること)などにも便利です。

C#からIEの自動操縦をするだけでもスクレイピングは勿論する事が出来ますが、如何せんMicrosoftの作ったIEです。

品質が悪いです。いろいろとInternet Explorerはダメなんですが一番我慢ならないのはページのロードが遅いという事です。

一回当たりの秒数が少なくても、IEみたくページのロードに時間がいちいち割かれる様だとトータルで時間の浪費になります。

そこでスクレイピングをする場合には、Seleniumを使ってCromeを操作する事をおすすめします。

Visual Studio 2017 + C#のプロジェクトでSeleniumuを使う為に行った作業を自分用にまとめておきます。

あと、Seleniumは最近私も始めた程度なのでそこまで詳しくありません。詳しい人はコメント欄などでTips的に色々と押してくれると嬉しいです。

VS2017でSeleniumを使える様にした手順

まず、最初にプロジェクトの参照の上で右クリック > NuGet パッケージの管理(N)をクリックします。

すると右側にNuGet パッケージ マネージャー

というウィンドウが出てきます。

NuGet

と入力して検索します。

すると

NuGet.Core  作成者:Outercurve Foundation,

というのが出てきます。

これを選択し右側のインストールをクリックします。

この時に開発中のプロジェクトが開いていると

変更のプレビュー

Visual Studio はこのソリューションに変更を加えようとしています。[OK]をクリックすると、以下に一覧表示された変更が適用されます。

インストール中

Microsoft.Web.Xdt.2.1.1
NuGet.Core.2.14.0

今後これを表示しないにチェックを入れてOKボタンを押します。

ライセンスへの同意

以下のパッケージをインストールするには、ライセンス条項に同意する必要があります。

という画面がでたら「同意する」をクリックします。

続いて同じ要領で

web driver

で検索して

Selenium.WebDriver

Selenium.Chrome.WebDriver

Selenium.WebDriver.ChromeDriver

もインストールします。

ここまでインストールして初めて

using OpenQA.Selenium.Chrome;

をソースコードの中に記述してもエラーがVS上に出なくなります。

using 参照でエラーになる人は試してみてください。

ネットでセレニウムの使い方を解説しているサイトを調べてみるとコンソール(Console)アプリケーションでC#+Seleniumの設定方法をまとめているサイトが多かったです。

個人的には、Windows フォームアプリケーションでUIがあった方が管理が楽でいいと思います。

これでガリガリC#+Seleniumのコードをかけます。

頑張りましょう!

 


カスペルスキーのうざい機能対策 ~ 暗号化された接続が確立されたドメインに対する信頼性を保証できません~


そもそも論 2019年4月版 カスペルスキーにバグが多すぎる

どうも皆さんこんにちは!

ノウハウツリーの管理人です。

さて最近カスペルスキーにバグが多くて本当に困っています。

先日カスペルスキーにバグの再現手順を教えるから替わりに次回更新料を無料にしてもらえないか?

と質問したところ

最後に、お問い合わせ3点目につきまして、誠に恐れ入りますが、弊社では「情報をご提供いただく代わりに次回のライセンス更新料を無料にする」といった対応はいたしかねる状況でございます。

とのことでしたw

まぁ、別にええけど

バグ何とかしてよwww

さて、本題に戻ります。

2019年4月にカスペルスキーをアップデートしたところ、過剰に反応して余計な通知が出る様になりました。

カスペルスキー インターネット セキュリティ

暗号化された接続が確立されたドメインに対する信頼性を保証できません

アプリケーション: Thunderbird

URL: mail.xxxx

理由:

証明書の名前が無効です。名前が許可リストに登録されていないか、明示的に除外されています。

内容を見ると確かにバグとまでは言いませんが、邪魔な通知です。

これはメーラー(サンダーバード)でメールを受信する度に表示されます。

httpsに反応しています。

邪魔な通知を出ない様にする方法

画面左下の歯車マーク > 詳細 > セルフディフェンス >

画面が変わったら

セルフディフェンスを有効にする

セルフディフェンスを有効にすると、本製品のファイル、メモリプロセス、およびシステムレジストリを変更または削除しようとする動作をブロックできます。

のチェックを外します。これで邪魔な通知が出なくなります。

 

※ps

おい、馬鹿カスペルスキーよ

タスクバー上のカスペルスキーの上で右クリックして

  • 一時停止
  • 停止

を数回行っているとフリーズするバグさっさと直せよ!

 

 


Visual Studio 2017 ブックマーク機能を使いこなす。


Visual Studio 2017では、以前のVisual Studioとブックマーク系のショートカットコマンドが色々と変わってしまいました。

という事で調べて分かった事とか整理しておきます。

VS 2017を使っていてこのブックマーク機能を使いこなせば生産性が明らかに上がります。

ブックマークウィンドウを表示する

Visual Studio 2017のメニュー  > 表示(V) > その他のウィンドウ(E)  > ブックマーク ウィンドウ(B) 

ブックマークウィンドウという機能があります。

これは私も最近知りました。

これは登録したコード内のブックマークを一覧表示する事が出来ます。どこにブックマークをしたのか一目瞭然で便利なので出しておきましょう。

これがブックマークウィンドウです。

プロジェクトの中で登録済のブックマーク一覧が表示されます。

右クリック > 名前の変更(R)

で、名前の替わりにコメントを入れておくと識別し易くていいです。

左のチェックボックスをON・OFFにすれば自由にブックマークを設定出来ます。

ブックマークのショートカットコマンド

ブックマークを追加する

Control +K > K

もしくは、

Control + B  > T

次のブックマークに移動する

Control + B > N

もしくは、

Control + K > N

前のブックマークに移動する

Control + B > P

もしくは、

Control + K > P

Visual Studio 2017では、なぜかこのコマンドが使えなくなりました。

全てのブックマークを削除する

Control + B > C

このコマンドを実行した場合

確認ダイアログが表示されます。

すべてのブックマークを削除しますか?

消す場合には、はい(Y) をクリックします。

 


2019年度版 おすすめのワードプレスのテーマ はAstraだ


2019年3月時点で個人的に気に入っているワードプレスのテーマはAstraです。デザイン・使い勝手も含めていい感じです。

WordPressの公式が出しているTwenty Nineteenよりも断然良いです。

備忘録として、個人的なメモを残しておきます。

フッターのクレジットを消す方法

一般的なWordPressのテーマとは異なって

外観 > テーマ(Theme Editor) > footer.php

を開いてもその中にPowerd by Astraというクレジット表示が見つかりませんでした。

そこでどのファイルで出力しているのか調べる為に

What The File

というプラグインをインストールしました。

このプラグインをインストールすると、簡単にテーマがどのファイルで構成されているのかを簡単に探す事が出来る様になります。

ここでは、Astra(アストラ)が使用しているPHPファイルが簡単にわかります。

クリックするとそのまま編集画面に移動する事が出来ます。

$section_2 = astra_get_small_footer( ‘footer-sml-section-2’ );

$section_2の中にクレジット情報が文字列として格納されていたので、それをコメントアウトする事で非表示に成功しました。

なかなか良いテーマでした。なのでクレジットは消さずに使ってあげてください!

あくまでも知識としてメモっておいた次第です。

 

 


WordPressのプラグイン Contact Form 7を使用していてエラーが発生した時のお話


Contact Form 7 がCrome(PC)で実行するとエラーになった

ノウハウツリー管理人の運営する別のとあるサイトにて

WordPressにContact Form 7のプラグインを入れて問い合わせフォームを作っていました。

その時に奇妙な出来事が起こりました。

なんと、スマホとPC(Firefox)からContact Form 7の問い合わせフォームを経由してメールしたところ正常に届くのに、なぜかGoogle Cromeで実行すると失敗してしまうのです。

表示されたエラー

エラー内容
メッセージの送信に失敗しました。間をおいてもう一度お試しいただくか、別の手段で管理者にお問い合わせ下さい。

スマホのSafariなどでは正常に動作するのになんでCromeでは失敗するの???

頭の中が混乱しましたw

そこで開発者ツールでJSなどでエラーが出ていないか確認したところ、JSでエラーが出ていました。

Contact Form 7 でエラーが出た解決策

Custom CSS & JSというプラグインの中でオリジナルのJSコードを記述していたのですが、それがエラーを起こしていました。

深く追いかけていないので自前のJSエラーと今回のコンタクトフォームのメール送信エラーの関係はまだはっきりは分かりません。

とりあえずContactFormを設置したページではそのJSファイルを読み込まない様にしたところ正常に動作する様になりました。

めでたしめでたし。

 

 

 


Visual Studio 2017 ビルド失敗時に前回ビルドが通ったアプリが起動しない様にする方法


Visual Studio 2017では、ビルドに失敗した状態でデバッグ実行すると、前回ビルドが通った時のモジュールが読み込まれてそのまま中途半端に動いてしまいます。

これは非常に邪魔くさい挙動です。

コードを修正しているのにいざ実行してみると、修正したコードが反映されていない、なぜ???

といった事態が起きる為です。

邪魔なのでビルドが通らない場合には、起動しない様にしておくとよいです。

自動起動しない様にする手順

メニュー > ツール > オプション

プロジェクトおよびソリューション > ビルド/実行

右側にある

実行時に、プロジェクトが最新の状態でないとき(O):

起動しない

に変更すればOKです。

たったこれだけです。

 


iPhone Xで撮影した動画をAdobe Premiere Pro CCで編集しようとするとズレる場合の対処方法


iPhone Xで撮影した動画をAdobe Premiere Pro CCで編集しようとしたところ動画再生を停止した時にズレが出てしまいました。

原因と対処方法を調べたのでメモしておきます。

原因としては、iPhone Xで撮影した動画形式は標準では、HEVCH(H.265)になっています。

その状態で撮影した動画をPremiere Proで編集しようとするとズレが発生する事になってしまいます。

対策として、これをH.264に変更すればズレが無くなります。

ファイル形式の違い

H.264 AVC

H.264 エンコーディングを使用する各種メディア

HEVC(H.265)

解像度最大 8,192 x 4,320 の H.265 メディア

モード変更方法

設定 > カメラ

フォーマットを選択します。

 

フォーマット

高効率

互換性優先

ファイルサイズを減らすため、写真とビデオを高効率のHEIF/HEVCフォーマットで撮影・録画します。”互換性優先は常にJPEG/H.264を使用しますが、4K/60 fpおよび1080p/240fpsを使用するには”高効率”が必要です。

と表示されるので互換性優先を選択します。

これでiPhone Xで撮影した時のデフォルトのファイル形式がH.264になります。

Adobe Premiere Pro CCでiPhone Xで撮影した動画がズレて困っているという人はぜひ試してみてください。

私の環境ではこの方法でズレる事なく正常に作業する事が出来る様になりました。

 

 

 

 


不用品処分対策 メルカリ VS ラクマ VS ヤフオク どれが一番良いか?


はじめに

日本におけるフリマアプリのシェアとしては、メルカリとラクマとヤフーがほぼ独占しています。

独占禁止法に抵触はしないみたいです。

携帯3社(ドコモ、ソフトバンク、AU)の完全なる独占を放置している公正取引委員会ですから当然と言えば当然ですね。

不用品(ゴミ)処分としてメルカリやラクマを利用している人も結構いると思います。

かねてよりノウハウツリー管理人は疑問に思っていた事があります。

同じ商品をメルカリとラクマでそれぞれ同時に出品した場合

どちらの方が売れるのか?

では早速比較していきましょう。

手数料の比較

メルカリ:10%

ラクマ:3.5%

実質は、送料は出品者負担となることが多いと思います。

一応、送料を両方とも落札者に負担させる事も出来ますが、落札されない事が多い為です。

圧倒的にメルカリの方が手数料が高いです。

メルカリとラクマどっちの方が多くの商品が売れたか

買い溜めしていた消耗品が結構ありましたので

実際に同じ商品を同じ価格で同時期に出品してみました。

結果として、圧倒的にメルカリの方が売れました。

というかラクマ(フリル)では1件も売れませんでした。

ラクマの運営スタッフがやる気が無い

ラクマのスタッフは質問をしても回答が非常に遅いです。

新ラクマカスタマーサポートです。
お送りいただいた内容にてお問い合わせを受け付けました。

現在、多くのお問い合わせをいただいております。
混雑状況により、対応までお時間をいただく場合がございます。
恐れ入りますが、回答までいましばらくお待ちくださいますようお願いいたします。

というメールを送り付けてきて1週間位放置する事がザラにあります。

万事こんな調子なのでユーザが離れていったのでしょう。

手数料が10%とメルカリはぼったくり級ではありますが

その分、広告・宣伝費を掛けているのか利用者が多くて商品は早く売れます。

手数料がメルカリは高いのであまり好きじゃないです。

ただ、ラクマは手数料が安いのは良いのですが

スタッフのやる気がなく、利用者数も少な過ぎるのでお話になりません。

売れないと利益は0な訳です。

手数料をとられてもメルカリで販売した方がよい気がします。

個人的には、ヤフオクが一番いいです。

手数料は、8.64%とメルカリより少し安いです。

また、送料を別にして出品する事が出来るので利益率的には一番良いです。

まとめ

不用品(ゴミ)処理には、ヤフオクとメルカリを使うのが一番です。

ラクマは、ユーザが少な過ぎてお話にならないです。

フリマアプリでゴミを売る人間とゴミを買う人間

世も末です。