• Skip to main content
  • Skip to primary sidebar

学習記録

画像のスクレイピング(sslの場合)

2022年9月3日 by 河副 太智 Leave a Comment

画像のスクレイピング(sslの場合)

1
2
3
4
5
6
7
8
9
import io
import ssl
from urllib import request
 
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
 
item_image = "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/180px-Cat03.jpg"
    
f = io.BytesIO(request.urlopen(item_image,context=context).read())

しかしなぜか以下のエラーが出てしまう理由は不明

C:\Users\xxx\AppData\Local\Temp\ipykernel_16388\4181980830.py:5: DeprecationWarning: ssl.PROTOCOL_TLSv1_2 is deprecated
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)

 

応用例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#国名+hs6桁のフォルダ名を設定
check_folder_exsist = glob.glob("E:\\rulings_img/" + HS_jsonData)
if not check_folder_exsist:
    os.mkdir("E:\\rulings_img/" + HS_jsonData)
 
 
for g in range(image_amount):
    try:  
        driver.find_element(By.XPATH, "//*[@id=\"dtlLayer\"]/div[4]/table/tbody/tr[9]/td/span[" + str(g+1)+ "]/a/img")
        time.sleep(1)
    except Exception as e:
        print("画像取得エラー発生divの値を5に変更:", e.args)
        driver.driver.find_element(By.XPATH, "//*[@id=\"dtlLayer\"]/div[5]/table/tbody/tr[9]/td/span[" + str(g+1)+ "]/a/img")
 
    item_image = driver.find_element(By.XPATH, "//*[@id=\"dtlLayer\"]/div[4]/table/tbody/tr[9]/td/span[" + str(g+1)+ "]/a/img").get_attribute("src")
 
 
    #画像の取得
    try:
        f = io.BytesIO(request.urlopen(item_image,context=context).read())
    except:
        print(">>>>>>>画像取得リトライ<<<<<<<<")
        time.sleep(10)
        f = io.BytesIO(request.urlopen(item_image,context=context).read())
 
    #3回トライしても画像取得できない場合はNONEにする
    for image_loop in range(3):
        try:    
            img = Image.open(f)
 
            img_name = "E:\\rulings_img/" + HS_jsonData + "/" + link_id + "-" + str(g+1) + ".jpg"
 
            #画像保存時にRGBはjpgに変換できないというエラーを防ぐ
            try:
                img.save(img_name)
            except:
                print("imgで保存できない為rgbに変換")
                rgb_img = img.convert('RGB')
                rgb_img.save(img_name)
 
 
            #画像が2件以上あれば画像名と画像URLをカンマ区切りで取得
            if g > 0:
                item_image_urls = item_image_urls + "," + item_image
                img_name_all = img_name_all + ","+ img_name
            else:
                item_image_urls = item_image
                img_name_all = img_name
            break
        except:
            print("3秒停止")
            time.sleep(3)
    else:
        item_image_urls = "None"
        img_name_all = "None"
        image_amount = 0
        break
else:
item_image_urls = "None"
img_name_all = "None"  
image_amount = 0

 

 

 

Filed Under: スクレイピング

Googleトランスで翻訳

2022年9月1日 by 河副 太智 Leave a Comment

Googleトランスにおいては謎のエラーが発生してうまく動かなかったが、
google_trans_newを使用してから翻訳できるようになった。

①pip install google-trans-new
でインストール

➁C:\Users\xxx\AppData\Local\Programs\Python\Python310\Lib\site-packages\google_trans_newを開く

enter image description here

③151行目のresponse = (decoded_line + ‘]’) を
response = decoded_lineに変える

④以下のコードを実行

1
2
3
4
from google_trans_new import google_translator
translator = google_translator()  
translate_text = translator.translate('요소로',lang_tgt='en')
print(translate_text)

これでgoogle翻訳が使用可能になった2022/9/1現在

Filed Under: python3, スクレイピング

customsrulingsdbのAWS配置状況

2022年8月4日 by 河副 太智 Leave a Comment

静的ファイル、全品目画像は
/usr/share/nginx/html/static
にある

 

アプリ本体は以下のディレクトリにある
/home/app_admin/venv_ruling/ruling/

Filed Under: AWS, Django

PuTTYとwinSCPの設定

2022年8月4日 by 河副 太智 Leave a Comment

■PuTTYの設定

AWSのプライベートキー(.ppk)が必要

■winSCP

AWSのプライベートキー(.ppk)が必要

上記を入力し終えたら「設定」をクリック

SSHの認証をクリックしてAWSのプライベートキー(.ppk)を読み込む

Filed Under: AWS

削除したロードバランサーの再設定

2022年8月3日 by 河副 太智 Leave a Comment

①

画像をアップしていなければボリュームの作成を行い30GBの追加を行う
ボリュームからタイプgp2,サイズ30GB,IOPS100,アベイラビリティーus-east-2cで作成し、アタッチする

➁

ロードバランサーの設定ページへ移動

Application LoadBalanceでcreateをクリック

Load balancer nameをcustomsrulingsdb(同じ名前は二度と使えないので数字を末尾に足していく)

SchemeをInternet-facing

IP address typeをipv4

Network mappingはvpc-2db21546を選択

Mappingsは2a,2b,2cすべて選択

Security groupsはload-balancer-wizard-2、sg-02594d8c2b31ffc25,vpc-2db21546を選択

Listeners and routingはHTTPsのポート443Defaultは customsrulingsdb3

Secure listener settingsはELBSecurityPolicy-2016-08、FromACM、customsrulingsdb.com

 

ロードバランサーを作成すると状態がプロビジョニングになるので5分ほど待ち、状態がActiveになったらRoute53に移動し、ホストゾーンをクリック、ドメイン名をクリックしレコードAのボックスをクリックし、レコードを編集をクリック

トラフィックのルーティング先をApplication Load BalancerとClassic Load Balancerへのエイリアスを選択し、米国東部(オハイオ)をクリックするとその下の虫眼鏡の項目は選択すると自動で先ほど設定したロードバランサーの名称が出てくるのでこれをクリックする(この名称はロードバランサーによって異なる)

これを保存し、数分するとページが表示される。

 

③画像をアップロード
静的ファイルや画像の配置場所
/usr/share/nginx/html/static
ここにrulings_imgの画像全てを入れる

Filed Under: AWS

AWSでHTTPS化

2021年7月7日 by 河副 太智 Leave a Comment

参考にしたサイトは以下の2サイト
AWSでSSL化する方法を伝授!!!

ALB-EC2構成のhttps接続を構築

両者矛盾する部分がある為実際にhttps化するのに苦労したので備忘録を作成。

AWSでSSL化する方法を伝授!!!のサイトはRoute53の解説辺りから
ちょっと怪しくなってくるので注意。

オレンジのレコードを作成ボタン(解説では青いレコードセットの作成ボタン)
を押す時点ではタイプはA,NS,SOAの3種類あり、これから4種類目を作成するので
Route53のページにはすでに4種類のレコードがあるがここに惑わされない
ように注意。

 

レコード作成時には
名前→Record Name
タイプ→CHAMEを選択
値→Record Value
を入力する事になる

レコード名の部分には.以降のドメイン名はすでに記載されているので
.(ドット)より前の部分のRecord Nameを入れる

 

次にロードバランサーの設定の解説「⑥step3HTTPSを許可するように設定する。」
では「新しいセキュリティグループを作成する」を選択するようにあるが
もう一方の解説サイトALB-EC2構成のhttps接続を構築では
「「既存のターゲットグループ」を選びます。」と解説があり、両者が矛盾。

ロードバランサーの最終確認画面では両者のサイトを比べると

AWSでSSL化する方法を伝授!!!ではリスナー:ポート80 プロトコルHTTPで
ALB-EC2構成のhttps接続を構築ではリスナー:ポート443 プロトコルHTTPSである。

最終的に自分の成功例でリスナーはHTTPS : 443とある事から
ロードバランサーの設定に関してはALB-EC2構成のhttps接続を構築を参考にする。

しかし、ALB-EC2構成のhttps接続を構築ではこの先の肝心な部分で
解説が終わってしまうので以下に補足解説を記載する。

エイリアスの設定で再びRoute53へ移動し、既に作成済みのAレコードを選択する。
(この時点ではStatic IPが値に入っている。)そしてレコードを編集をクリックして
以下のように入力。

エイリアスをオンにして「Application Load balancer と ClassicLoad Balancerへのエイリアス」を選択しロードバランサー設定にて選択したアベイラビリティーゾーンと同じ
地名を選択すると自動で虫眼鏡マークの横に値が自動入力される。

例:dualstack.xxxxxxxxxxxxxx-139xxxxxx2.us-east-2.elb.amazonaws.com.

インバウンドルールは以下のようになっている(特にいじった記憶が無い)

 

これでURLに鍵マークがつくようになるが自分のPC以外からのアクセスができない
という現象が起きて2日間悩みAWSの有償サポートに連絡。

すると以下のように返事が来た

 

以下のリソースをご利用いただいているものと判断いたしまして回答差し上げます。

 ドメイン名: xxxxxxxxxxxx.com.
 Route 53 : ZxxxxxxxxxxGJ73FW1BF1
 リージョン: us-east-2 米国東部 (オハイオ)
 ALB : xxxxxxxxxdb-139xxxxx52.us-east-2.elb.amazonaws.com

ALB にはセキュリティグループ: sg-02594xxxxxxffc25 をご指定いただいておりますが、
sg-02594xxxxxxffc25 では 106.73.xx.xxx/32(自宅IP) からの TCP/443 のみが許可されております。

インターネットの任意の場所からアクセスさせるためには、0.0.0.0/0 を許可してください。

 

そこでセキュリティグループの設定からALBにて指定したセキュリティグループを
選択し、Sourceを見るとなぜか自宅のIPアドレスが指定されていました。

そこでEdit inbound rulesをクリックして0.0.0.0/0にしたら解決しました。

お名前.comで取得したドメインをawsで運用

https://dev.classmethod.jp/articles/route53-domain-onamae/

Filed Under: AWS

  • « Go to Previous Page
  • Page 1
  • Page 2
  • Page 3
  • Page 4
  • Interim pages omitted …
  • Page 66
  • Go to Next Page »

Primary Sidebar

カテゴリー

  • AWS
  • Bootstrap
  • Dash
  • Django
  • flask
  • GIT(sourcetree)
  • Plotly/Dash
  • VPS
  • その他tool
  • ブログ
  • プログラミング
    • Bokeh
    • css
    • HoloViews
    • Jupyter
    • Numpy
    • Pandas
    • PosgreSQL
    • Python 基本
    • python3
      • webアプリ
    • python3解説
    • scikit-learn
    • scipy
    • vps
    • Wordpress
    • グラフ
    • コマンド
    • スクレイピング
    • チートシート
    • データクレンジング
    • ブロックチェーン
    • 作成実績
    • 時系列分析
    • 機械学習
      • 分析手法
      • 教師有り
    • 異常値検知
    • 自然言語処理
  • 一太郎
  • 数学
    • sympy
      • 対数関数(log)
      • 累乗根(n乗根)
    • 暗号学

Copyright © 2025 · Genesis Sample on Genesis Framework · WordPress · Log in