[Python #1] Learning Python with Selenium - Log in to steemit [KR]

in #kr5 years ago (edited)

Java 하나만 쭉 사용해 왔고 이제는 좀 색다른 언어도 필요할 것 같아 Python 언어를 요즘 열심히 배우고 있다. 안 배우면 도태되는 세상 아닌가? 뭐라도 배우지 않으면 도태될 것 같다. (#불안불안#나만그런거?)

배운 내용은 짤막하게 잘라서 일지 형식으로 스팀잇에 영구 보존해 보려고 한다.
언제까지 쓸 수 있을지는 모르겠지만 일단 시작해본다. 시작이 절반이라 하지 않았는가? ㅎㅎ

무작정 배우는 것보다 뭐라도 하면서 배우는 게 좋을 것 같다. 웹 사이트를 크롤링 할 수 있는 Selenium 모듈로 스팀잇 사이트에 접속해서 원하는 액션을 자동화하면 좋을 것 같다. 해보자~~

Install

install Python: https://www.python.org/downloads/
install Selenium module: pip install selenium
install IDE pycharm: https://www.jetbrains.com/pycharm/download/#section=windows

Scenario

  1. 스팀잇 접근 후 창 최대로 설정
  2. 로그인 레이어에서 계정 입력
  3. 파일에 저장되어 있는 포스팅키를 불러와서 입력
  4. 로그인 완료

Source

from selenium import webdriver
import time

def login():
    # Click the login button
    chrome.find_element_by_xpath('//Header/descendant::a[text()="로그인"]').click()
    # Enter username
    chrome.find_element_by_xpath('//input[contains(@name,"username")]').send_keys('june0620')
    # Get posting key from file
    with open('C:/Users/USER/Desktop/python/june0620.txt') as pw:
        for postingKey in pw:
            # Enter posting key
            chrome.find_element_by_xpath('//input[contains(@name,"password")]').send_keys(postingKey)
            # Click the login button
            chrome.find_element_by_xpath('//button[text()="로그인"]').click()
    # Waiting for N seconds
    time.sleep(3)
# Set chromedriver
chrome = webdriver.Chrome('C:/Users/USER/Desktop/python/chromedriver/chromedriver.exe')
steemit = 'https://steemit.com'
# Set window maximum
chrome.maximize_window()
chrome.implicitly_wait(5)
chrome.get(steemit)
# Call function 'login'
login()
chrome.quit()

실행 영상

https://youtu.be/5i5qbntTras

오늘의 내용 정리

Python:

  1. 함수 정의 시 def로 시작하고 콜론(:)으로 마무리한다. 또한 함수 내부는 들여쓰기를 사용한다. {}로 감싸는 JAVA 등 다른 언어와 다른 부분이다. 들여쓴 부분을 스위트라고 한다.
  2. 변수 생성 시 타입을 명시하지 않는다. 모든 타입은 파이썬이 알아서 처리한다고 한다.
  3. 파일을 읽을 때 with open() as xx: 를 사용한다. 스위트는 들여쓰기 한다.
  4. 반복문은 for x in xx: 형식으로 쓰인다. 자주 까먹는데 스위트는 들여쓰기 한다.

Selenium:

  1. find_element_by_xpath() 등 메서드로 엘리멘트를 찾을 수 있다. (예: 로그인 버튼)
  2. click() 으로 엘리멘트 클릭하고, sendkeys()로 텍스트 입력한다.

Pycharm:

  1. 변수명을 일괄 변경하는 단축키는 shift + F6 이다.
Sort:  

Interesting idea. I'd like to try it when come home 🤔

Posted using Partiko Android

Thank you, you can try. 😄

Also I want to ask you. Now I am thinking about creating tool on python to upvote some users with spesial tags, time delay and s.o. How do you think which library better to use for it?

Posted using Partiko Android

I think steem's native python library is good enough.
https://steem.readthedocs.io/en/latest/

오랜만에 오셔서 반가워요~^^ 💙

아자~아자~아자~♨♨♨

@tipu nominate

!shop

항상 행복한 💙 오늘 보내셔용~^^

Posted using Partiko Android

tipu는 뭔가요?^^
다른 분도 댓글에 이 멘션 쓰셨는데 보팅이 엄청나게 들어왔네요~
감사합니다^^

악~ 고맙습니다~
스팀잇 며칠 안했는데 재밌네요^^

Posted using Partiko Android

Hi~ bluengel!
@also.einstein has gifted you 1 SHOP!

Currently you have: 27 SHOP

View or Exchange SHOP Please go to steem-engine.com.

Are you bored? Play Rock,Paper,Scissors game with me!

오래만입니다. 엔젤님^^
행복한 하루 보내셔요~
!shop

Posted using Partiko Android

Upvoted 👌

谢谢~
什么是tipu?

Posted using Partiko Android

你赶快去这个人的帖子留言申请当审查
通过了你就可以每天呼叫三篇新文章
他就来点赞了 比如你这贴
最好是在新文章呼叫 让他得到最多审查收益
每天你的等级就会提高

Posted using Partiko Android

哈 !这么好、谢谢分享@annepink
!shop

Posted using Partiko Android

不客气哈~帅锅😚

Posted using Partiko Android

Hi~ 萍萍!
@june0620 has gifted you 1 SHOP!

Currently you have: 63.001 SHOP

View or Exchange SHOP Please go to steem-engine.com.

Are you bored? Play Rock,Paper,Scissors game with me!


You lose! 你输了!愿赌服输,请给我点赞~

萍萍恭喜拿到审查员资格!

Posted using Partiko Android

也恭喜亦亦喔✌😄
我刚看见你了 有机会我帮你呼叫 互玩互乐互助😚

Posted using Partiko Android

你们都有资格了? 就我没有,我也试试

Posted using Partiko Android

我想起来了我可以每天推荐一个人
我来推荐你 @tipu nominate

Posted using Partiko Android

这都可以?
会马上生效吗?刚刚还有人给我用nominate 我没懂。哈哈

Posted using Partiko Android

应该是可以 等他回复你就通过了

Posted using Partiko Android

可以了。在这里可以看到https://tipu.online/curators

Posted using Partiko Android

这么快,给你们两位发下 哈哈

Posted using Partiko Android

哈哈,还是撸帖子奖励多的吧。我无所谓啦。加油,升级重要。

Posted using Partiko Android

谢谢亦亦~ 你真好👋

Posted using Partiko Android

萍萍的帖子收益高,有空我来蹭蹭奖励。哈哈。

Posted using Partiko Android

没有啊... 😅见笑了🤦‍♀️

Posted using Partiko Android

了解了,你太好了😄

你也好😚 刚第一次收到你的满赞... 太受宠若惊了🤩

Posted using Partiko Android

헛. 프로그래머신가 보군요!~

Posted using Partiko Android

오래만입니다. 럭키님^^
프로그래머는 아니고 관심만 있어요 ㅎㅎㅎ

Posted using Partiko Android

你好鸭,june0620!

@bluengel给您叫了一份外卖!

@morningshine 老K 在晴空万里 坐着高铁 给您送来
虾条

吃饱了吗?跟我猜拳吧! 石头,剪刀,布~

如果您对我的服务满意,请不要吝啬您的点赞~
@onepagex


You lose! 你输了!愿赌服输,请给我点赞~

Thank you so much for participating in the Partiko Delegation Plan Round 1! We really appreciate your support! As part of the delegation benefits, we just gave you a 3.00% upvote! Together, let’s change the world!

정말 오랜만에 글 올리셨네요.
정확히는 몰라도 대충 무슨 일을 하시는가 짐작은 하겠군요.^^
잘 몰라서 그런가 엄청 대단하시다는 생각이 듭니다.ㅎㅎ

가시고기님 오래만입니다^^
좀 쉬었어요~ 이젠 일일일글 못하겠네요~

저도 지금 막 배우는 단계라 대단한 정도는 아닙니다~ ㅎㅎㅎ

Posted using Partiko Android

어려워요.ㅜㅜ

저도 어려워요~ 새로운 시도는 항상 어려운 것 같아요^^ 하이트님 풀룻도요~
!shop

Posted using Partiko Android

Hi~ gghite!
@june0620 has gifted you 1 SHOP!

Currently you have: 22 SHOP

View or Exchange SHOP Please go to steem-engine.com.

Are you bored? Play Rock,Paper,Scissors game with me!


You lose! 你输了!不给我点赞,你就再吃我一拳~


You win!!!! 你赢了!我这新手村猜拳小能手的名号让给你了! 给你1枚SHOP币!

진짜 어지럽긴 하네요ㅋㅋ

!shop

저도 좀 어지럽네요~
새로운 거 배우는게 힘드네요^^
!shop

Posted using Partiko Android

Hi~ ravenkim!
@june0620 has gifted you 1 SHOP!

Currently you have: 21 SHOP

View or Exchange SHOP Please go to steem-engine.com.

Are you bored? Play Rock,Paper,Scissors game with me!


It’s a tie! 平局!再来!在猜拳界,我还没有输过!


You win!!!! 你赢了!我这新手村猜拳小能手的名号让给你了! 给你1枚SHOP币!

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.034
BTC 63900.40
ETH 3140.82
USDT 1.00
SBD 3.98