<追記> 自作スクリプトがコピーする文字列によってDecodeで例外吐いてたので修正

いつの間にやら Pixiv 巡回に必須である神スクリプトの PixivUtil2 が Python2.7 からPython3 になっていました。
以前 PixivUtil2 を導入した際は、Python にあまり慣れていないこともあり、結構苦労した記憶があります。
しかし今回は思いのほかあっさり導入できました。
以下に導入の記録を記します。

Python2.7 をアンインストールする

複数のバージョンの Python があると管理が大変なので Python3 に統一します。
Python 2.7 をインストールしている場合はアンインストールしましょう。
他で Python 2.7 を使用している場合は、パスを指定して使うなど工夫が必要です。
その方法は各自調べてください。

Python3 を「Add Python x.x to PATH」にチェックを入れてインストールする

公式サイトより Python3 のインストーラーをダウンロードします。
Windows x86-64 executable installerで良いでしょう。
インストール画面で"Add Python x.x to PATH"にチェックを入れてインストールします。
インストール後に自分で環境変数を設定することもできますが、インストーラーがやってくれるのならインストーラーにやらせたほうが安心です。
私はチェックを忘れてインストールしてしまったので、わざわざ一度アンインストールしてからインストールし直しました。
インストールが終わったらPowerShellを起動し"python -V"コマンドを実行し、


$ python -V
Python 3.x.x
と表示されることを確認しましょう。

pipで各モジュールをインストールする

Python にモジュールを追加するのには pip コマンドを利用します。
多分 Python3 のインストールで同時に入っているはずです。
PixivUtil2 に必要なモジュールを確認し、一つ一つ"pip install xxx"でインストールしていきます。



$ pip install beautifulsoup4
インストールしたモジュールは"pip list"でバージョンと共に確認できます。

$ pip list
Package             Version
------------------- ----------
apng                0.3.3
beautifulsoup4      4.8.2
certifi             2019.11.28
chardet             3.0.4
demjson             2.2.4
html5lib            1.0.1
idna                2.8
imageio             2.6.1
mechanize           0.4.5
numpy               1.18.1
Pillow              7.0.0
pip                 19.3.1
pypiwin32           223
PySocks             1.7.1
pywin32             227
requests            2.22.0
setuptools          41.2.0
six                 1.13.0
soupsieve           1.9.5
urllib3             1.25.7
webencodings        0.5.1
win-unicode-console 0.5

PixivUtil2を実行する

後は PixivUtil2.py を"python PixivUtil2.py"で起動するだけです。
ログインに CAPTCHA が必要になったからか、コマンドでのログインができないみたいなので、キャッシュを使用してログインしましょう。
過去のバージョンを使っていたのなら、config.ini を PixivUtil2.py と同フォルダに入れればそのままログインできます。
以前は config.ini の仕様が変更されると起動時に弾かれていましたが、今は最新の config.ini に成形しなおしてくれるようになったみたいで、とても便利になりました。
<追記>更にこれまで約450件のIDしか同時にダウンロードできませんでしたが、制限がだいぶ上がったみたいです。1000件以上を確認しました。これはありがたい!

win32apiをインストールしてコピペスクリプトも使う

自作のコピペスクリプトは win32api が必要です。
これも pip でインストールできます。
"pip install pypiwin32"です。
pip 超便利。
Python3 で仕様が変わったので修正したコピペスクリプトが以下です。

# -*- coding: utf-8 -*-
import win32api
import win32com.client
import win32clipboard as CB

win32api.Sleep(500)
shell = win32com.client.Dispatch("WScript.Shell")

url = "https://www.pixiv.net/artworks/"
output = r"list.txt"

print ('Start Clipbord check')

CB.OpenClipboard()
text1 = CB.GetClipboardData(1) #1 -> CF_TEXT
CB.CloseClipboard()
text1 = text1.decode('utf-8', 'replace')

count = 1

while 1:
  win32api.Sleep(200)
  try:
    CB.OpenClipboard()
    text2 = CB.GetClipboardData(1) #1 -> CF_TEXT
    CB.CloseClipboard()
    text2 = text2.decode('utf-8', 'replace')
    if text1 != text2:
      text1 = text2.replace( url,'' )
      if text1 != text2:
        text = '%s ' % text1
        while 1:
          try:
            with open ( output, 'a' ) as f:
              try:
                f.write ( text )
                break
              except IOError as e:
                print ('except: Cannot write')
          except IOError as e:
            print ('except: Cannot open')
          win32api.Sleep(200)
        print("\007")
        text = '{0} : {1}'.format( count, text1 )
        print(text)
        count+=1
      text1 = text2
  except win32api.error:
  print ('except: win32api error')
相変わらず例外処理が甘くてたまにこけます。
Python3 で例外メッセージがわかりやすくなっていたので、GetClipboardDataあたりが問題なのはわかりましたので、暇なとき修正するかも。
修正しました。エラー落ちしなくなりました。