puppeteer/selenium/webdrive/playwright...

생각해보니 팬대믹 때 같은 데, 귀찮게 회사 웹 사이트에 접속해서 뭔가를 계속 업로드해야 하는 일이 생겨서 기왕에 이럴 바에야 자동화해버려야지 해서 찾게 된 게 puppeteer였다.

요즘에도 마찬가지로 정해진 시간에 어딘가에 접속해서 어떤 일을 웹상에서 수행해야 되는 경우가 발생해서 puppeteer로 자동화를 하려고 했더니 몇 번 시도했다고 곧바로 block이 되었다. 어떤 이유에서인지는 잘 모르겠다. 아마도 웹사이트에 접속해서 암호를 따내려는 시도를 하는 이들이 많아서 생긴 것이겠거니 한다. 나처럼 규칙적으로 해야 하는 일을 자동화하겠다고 해서 그게 해당 서버에 미치는 영향은 사실상 없는 것이나 다름없으니까.

잘은 몰라도 puppeteer를 처음 보자마자 느낀 게 의도적으로 어딘가를 공격하겠다거나 웹사이트에서 원하는 정보를 꺼내야겠다거나 하는 의도가 있으면 이걸 쓰는 것이 그들한텐 편한 방법 아닐까 하는 생각을 했으니까 말이다.

어쨌든 관련정보를 찾다보니 selenium이란 것도 나오고 playwright라는 것도 나온다. 이 모든 것들은 웹사이트를 테스트하는 용도로 쓰는 플랫폼이다 라는 식으로 나타난다. 그러니까 사용자가 어떤 스크립트로 테스트를 자동화하는 데 쓰는 용도이다. 여기에 safariwebdrive라는 것은 safari를 remote automation을 가능하게 하는 것이라 여기서 허가를 해주어야 쓸 수 있다는 둥의 정보를 얻었는데, puppeteer는 여전히 사용할 수 있고 그것을 개발하던 이들이 microsoft로 가서 playwright라는 것을 만들고 사실상 그것이 대세가 되어버린 모양이다.

내가 원하는 것은 그냥 단순히 내가 쓰는 브라우저만 자동화해서 귀찮은 업로드 일이라든가 웹사이트로 예약하거나 줄서기 하는 것을 규칙적으로 해줬으면 하는 거다. 이렇게 허무하게 블록 당하는 일을 경험하면 (오기로) 성공하고자 하는 욕구가 더 생기게 되는데, 그럴 수록에 없어지는 것은 내 개인시간이니까 또 갈등하게 되는 거다.

playwright가 좋긴 해도 사용하는 것은 여전히 puppeteer가 간편하고 웹사이트에서 어떤 방법으로 이것을 detect하는지는 모르겠지만, 그런 의미라면 웹사이트에 접속해서 벌어지는 일들의 진행 시간을 (사람이 하듯이) 매우 느리게 만들어야 되고 agent도 뭐 최근에 나온 브라우저로 적당히 바꿔줘야되나 하는 생각을 해본다. 애초에 연습을 할 때도 블록 당해도 다시 시도해볼 수 있게 VPN을 사용한다거나 해야 되는 것 같기도 하고. cookie 같은 것을 보내서 체크하는 것 같기도 하니 거참 뭘 좀 편하게 해보려고 해도 (직업적으로 나쁜 짓을 하는 이들 때문에) 이젠 참 쉽지 않구나 싶다.