• Skip to main content
  • Skip to primary sidebar

学習記録

プログラミング

TOR proxyを利用してseleniumスクレイピング

2020年3月18日 by 河副 太智 Leave a Comment

proxy経由でスクレイピングをする際はまずTORブラウザーをダウンロードする
ダウンロード

TORブラウザを起動させて右上の設定ボタンから
Option→Tor

Advancedの設定

SOCKS 5 → 127.0.0.1 → 9150と入力

TORブラウザを起動させたままプログラムを実行

1
2
3
4
5
6
7
8
9
10
11
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--proxy-server=socks5://127.0.0.1:9150")
driver = webdriver.Chrome(options=chrome_options)
# driver = webdriver.Chrome(executable_path='ChromeDriverPath', chrome_options=options)
driver.get("http://icanhazip.com/")
print(driver.page_source)
driver.close()

上記のコードで自分のPCと異なるIPアドレスが出てくれば準備OK
例:<html xmlns=”http://www.w3.org/1999/xhtml”><head></head><body><pre style=”word-wrap: break-word; white-space: pre-wrap;”>45.14.148.96</pre></body></html>

 

↓googleをスクレイピング

1
2
3
4
5
6
7
8
9
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
chrome_options = Options()
chrome_options.add_argument("--proxy-server=socks5://127.0.0.1:9150")
driver = webdriver.Chrome(options=chrome_options)
 
driver.get("http://google.com")
driver.close()

↓タイムアウトに対応

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
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
 
chrome_options = Options()
chrome_options.add_argument("--proxy-server=socks5://127.0.0.1:9150")
driver = webdriver.Chrome(options=chrome_options)
 
driver.get("http://google.com")
time.sleep(2)
 
 
i = 0
 
while i < 100:
    try:
        time.sleep(10)
        search_box = driver.find_element_by_id("TOPMENU_LNK_M_ULS0200000000")
        print("見つかったのでブレイク")
        break
        
    except:
        i = i + 1
        print("再度トライ" + str(i) + "回目")
        driver.get("http://google.com")
        time.sleep(2)
 
        continue
        
driver.close()

 

Filed Under: スクレイピング

forのエラー処理

2020年1月19日 by 河副 太智 Leave a Comment

forでのエラー発生時の処理

1
2
3
4
5
6
7
8
for i in range(x):
    try:
        trans_en = translator.translate( df["名称"][i], dest='ja')
        print(i)
        df["名称"][i] = trans_en.text
    except:
        time.sleep(600)
        pass

googletransの使い過ぎでエラーになるので、エラーが出たら10分休む設定

Filed Under: python3

EXCELの読み込み

2020年1月19日 by 河副 太智 Leave a Comment

EXCELを読み込む際はxlrdを予めインポート

1
2
3
4
5
6
7
import xlrd
import pandas as pd
 
wb = xlrd.open_workbook('cn_hslist.xlsx')
 
file = pd.ExcelFile(wb, engine='xlrd')
df = pd.read_excel(file)

上記例は中国語のエクセルを開いたものなので、日本語の場合は
file = pd.ExcelFile(filename, encoding=’utf8′)
で読み込む

Filed Under: Pandas

WEBアプリをエックスサーバー

2020年1月11日 by 河副 太智 Leave a Comment

エックスサーバーでPythonを動かす方法

まずは、公開ディレクトリ以下に適当にPython用のフォルダを作成し、「.htaccess」という名前のファイルを新規作成する。

ファイルの中身は下記。
※必ず改行コード「LF」で保存すること。

1
AddHandler cgi-script .py

この設定を追加することで、拡張子「.py」のファイルがcgi(webプログラムを実行しその結果を表示するもの)として実行される。

 

「.htaccess」と同じディレクトリに「test.py」を作成する。

ファイルの中身は下記。
※必ず改行コード「LF」で保存すること。

1
2
3
#!/usr/bin/python3
print("Content-type: text/html\n\n")
print("hello,world")

1行目は、cgiプログラムを書くときに記載するもので、pythonのパスを指定する。

エックスサーバーでは、python2系と3系がデフォルトで利用でき、「/usr/bin/python3」とするとpython3系を使う。

2行目は、ブラウザにテキストを表示しさせるための命令。HTMLのヘッダーとなる。

↑conversion.pyというのがメインのコードを記述したファイル

Filed Under: webアプリ

EUから画像をスクレイピング

2020年1月10日 by 河副 太智 Leave a Comment

EUのページから画像URLをスクレイピングをしたいのだが
上記検索結果画面のソースには画像URLが無い為直接の取得ができない。

フレームかと思いきやJava Scriptで画像を表示している事がわかった
のでソースから”.jsp”の文字列を探して
var link = new url(“ebti_list.jsp”);
が画像一覧を生成するJavaScriptタグである事を発見する

そこでBeautifulSoupにて以下のコードを実行する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import requests
from bs4 import BeautifulSoup as BS
 
# create session to keep cookies
s = requests.Session()
 
# load original page to get cookies    
url = 'https://ec.europa.eu/taxation_customs/dds2/ebti/ebti_consultation.jsp?Lang=en&Lang=en&refcountry=&reference=&valstartdate=&valstartdateto=&valenddate=&valenddateto=&suppldate=&nomenc=3824&nomencto=&keywordsearch1=&keywordsearch=&specialkeyword=&keywordmatchrule=OR&descript=&orderby=4&Expand=true&offset=1&viewVal=Thumbnail&isVisitedRef=false&allRecords=0&showProgressBar=true'
r = s.get(url)
 
# load page with thumbnails
url = 'https://ec.europa.eu/taxation_customs/dds2/ebti/ebti_list.jsp?viewVal=Thumbnail&Lang=en&offset=1&allRecords=0&nomenc=3824&orderby=4&keywordmatchrule=OR&isVisitedRef=false&random=8377162'
r = s.get(url)
soup = BS(r.text, 'html.parser')
 
all_items = soup.find_all('img')
for item in all_items:
    print(item['src'])

これにより全ての画像URLを取得

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/DE/DEBTI18403-19-1_thumbnail104.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/DE/DEBTI18403-19-1_thumbnail105.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/DE/DEBTI18403-19-1_thumbnail106.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/DE/DEBTI18403-19-1_thumbnail107.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/DE/DEBTI18349-19-1_thumbnail625.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/DE/DEBTI18349-19-1_thumbnail626.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/DE/DEBTI18349-19-1_thumbnail627.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/DE/DEBTI18349-19-1_thumbnail628.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/GB/GBBTI503986041_thumbnail4.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/GB/GBBTI503986041_thumbnail5.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/GB/GBBTI503986041_thumbnail6.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/DE/DEBTI35762-19-1_thumbnail1.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/DE/DEBTI35762-19-1_thumbnail2.jpeg
https://ec.europa.eu/taxation_customs/dds2/ebti/imagesLocation/DE/DEBTI35762-19-1_thumbnail3.jpeg

 

以下の動画でjavascriptを外して表示するとどうなるかをchromeの検証で
調べる方法がある

Filed Under: スクレイピング

zipファイル(圧縮ファイル)を解凍

2019年3月10日 by 河副 太智 Leave a Comment

Pythonでzipファイルを解凍する方法
os内の指定フォルダにダウンロードした複数のzipファイルを対象にして
指定のフォルダに展開した。

1
2
3
4
5
6
7
8
9
10
import glob
import os
import zipfile
 
download_zip=glob.glob(r"C:\Users\AAAAA\Downloads/*.zip")
print("対象ファイルは:"+download_zip[0])
 
for i in range (len(download_zip)):
    with zipfile.ZipFile(download_zip[i]) as existing_zip:
        existing_zip.extractall(r"C:\Users\AAAAA\Downloads/")

 

Filed Under: python3 Tagged With: zip, zipファイル, 圧縮, 解凍

  • « Go to Previous Page
  • Page 1
  • Page 2
  • Page 3
  • Page 4
  • Page 5
  • Page 6
  • Interim pages omitted …
  • Page 55
  • 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