Python으로 쓰레기 트위터 로봇을 만들다.

7024 단어 tutorialpythontwitter
웹의 한 부분에서 정보를 캡처해 트위터에 토하는 트위터 로봇을 구축하는 방법을 살펴보자.트위터 로봇(예를 들어 나 자신)에 대한 생각을 하고 싶다면 좋은 예가 몇 가지 있다.이 예에서, 우리는 첫 번째 발표 제목의 dev를 찾기만 하면 내용을 작성할 것이다.
요구 사항:
  • Python
  • 텍스트 편집기
  • 브라우저
  • 인내심
  • 한 줄의 코드를 작성하기 전에, 우리는 두 가지 기능이 강한 모듈, 즉 beautifulsouptweepy을 다운로드해야 한다.Beautifulsoup은 웹 쓰레기를 처리하고, tweepy는 트위터 API 요청을 처리합니다.

    네트워크 쓰레기


    Webscraping은 프로그래머가 가지고 있는 가장 강력한 도구 중 하나이며, 내가 모든 언어를 접할 때 가장 먼저 해야 할 일이다.우리는 beautifulsoup 를 사용하여 설치할 것입니다. 터미널에서 설치할 수 있는 방법은 다음과 같습니다.
    pip install beautifulsoup4
    
    새 것을 만듭니다.py 문서를 위쪽에 추가하여 beautifulsoup (현재 bs4라고 함) 을 가져오는 데 필요한 모든 기능을 제공합니다.
    import requests
    from bs4 import BeautifulSoup
    
    이제 bs4가 열리기를 원하는 페이지를 정의해야 합니다. 이렇게 할 수 있습니다.
    page = reqeusts.get("http://dev.to")
    soup = BeautifulSoup(page.content, "html.parser")
    
    bs4가 정상적으로 작동하는지 테스트하기 위해서, 이 페이지의 내용을 인쇄하기만 하면 우리의 내용을 볼 수 있습니다
    print(soup)
    

    현재, 우리는 dev.to에서 읽을 수도 추문할 수도 없는 모든 html를 불러오고 있습니다.우리는 현재 bs4에 내장된'찾기'기능을 사용하여 검색을 최적화해야 한다.각 글의 제목을 찾기 위해서는 dev.to의 HTML을 깊이 연구해야 한다.우리는 모든 HTML을 읽거나 가장 좋아하는 웹 브라우저를 간단하게 사용해서 이 작업을 완성할 수 있습니다.


    위의 DOM에서는 각 제목이 여러 HTML 클래스와 ID에 숨겨져 있음을 확인할 수 있습니다.이것들을 얻기 위해서 우리는 일련의 제목을 되돌리기 위해 요소를 발굴해야 한다.우리는 이렇게 할 수 있다. 잠시 후에 나는 설명할 것이다.
    from bs4 import BeautifulSoup
    import requests
    
    page = requests.get("http://dev.to")
    soup = BeautifulSoup(page.content, "html.parser")
    home = soup.find(class_="articles-list crayons-layout__content")
    posts = home.find_all(class_="crayons-story__indentation")
    
    for post in posts:
        title = post.find("h2", class_="crayons-story__title")
        print(title.text.strip())
    
    이제 순서대로 코드를 훑어봅시다.
    page = requests.get("http://dev.to")
    soup = BeautifulSoup(page.content, "html.parser")
    
    HTML 페이지를 열고 결과를 bs4.BeautifulSoup 객체로 반환합니다.그런 다음 HTML 전체에서 다음 객체를 찾을 수 있습니다.
    home = soup.find(class_="articles-list crayons-layout__content")
    posts = home.find_all(class_="crayons-story__indentation")
    
    DOM 위의 빨간색 부분은 "home"변수의 모든 내용을 가리키고, Posts는 녹색 부분의 모든 내용을 가리킨다.posts는 현재 하나의 수조(또는 bs4.element.ResultSet입니다. 우리는 다음과 같이 교체할 수 있습니다.
    for post in posts:
        title = post.find("h2", class_="crayons-story__title")
        print(title.text.strip())
    
    게시물 목록의 모든 게시물에 대해 우리는 분류가 crayons-story__title인 h2를 검색하고 제목을 인쇄합니다.이것은 강조 표시된 DOM의 보라색 부분입니다.만약 모든 것이 정상이라면, 아래의 게시물 목록을 보실 수 있을 것입니다.

    그러나 분명히 우리는 그중의 첫 번째만을 원하기 때문에 다음과 같은 일을 할 수 있다.
    top_post = posts[0].find("h2", class_="crayons-story__title").text.strip()
    
    내 예에서, 그것은 Stop Using React 게시물을 되돌려준다.<a href="foo"> 태그와 같은 다른 요소를 선택하려면 compjour 의 이 강좌를 보십시오.
    어쨌든, 지금 우리는 우리가 트위터를 하고 싶은 것들 (어떤 문자열, 심지어 이미지도 가능) 이 생겼으니, 우리는 지금 트위터를 볼 수 있다.

    트윗


    이를 위해, 우리는 tweepy를 사용할 것입니다. 그 문서는 bs4와 같이 강력하고 유용합니다. 보시기를 권장합니다.일반 설치:
    pip install tweepy
    
    python 문서의 맨 위에 tweepy를 포함하는 것을 잊지 마세요
    import tweepy
    
    현재 우리는 당신의 로봇이 그 안에서 운행할 수 있도록 트위터 프로그램을 설치해야 합니다.응용 프로그램을 만들고 간단한 폼을 작성해서 이 작업을 완성할 수 있으며, 이메일을 확인한 다음, 개발자 응용 프로그램이 확인되기를 기다려야 합니다.또한 API 키를 얻기 전에 보내고자 하는 트윗에 대해 더 많은 작업을 할 수 있습니다.
    from bs4 import BeautifulSoup
    import tweepy
    import requests
    
    def scrape():
        page = requests.get("http://dev.to")
        soup = BeautifulSoup(page.content, "html.parser")
        home = soup.find(class_="articles-list crayons-layout__content")
        posts = home.find_all(class_="crayons-story__indention")
        top_post = posts[0].find("h2", class_="crayons-story__title").text.strip()
    
    
        tweet(top_post)
    
    def tweet(top_post):
        consumer_key = "#"
        consumer_secret = "#"
        access_token = "#"
        access_token_secret = "#"
        auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
        auth.set_access_token(access_token, access_token_secret)
        api = tweepy.API(auth)
        api.update_status(top_post)
    
    scrape()
    
    이곳에 많은 일이 발생했으니 천천히 합시다.우리가 작성한 트위터 함수는 "toppost"의 매개 변수를 사용할 것입니다. 이것은 우리가 scrape 부분에서 얻은 결론입니다.consumer_key,consumer_secret,access_token,access_token_secret는 트위터가 우리에게 제공한 API 키로 길고 읽을 수 없는 문자열일 것입니다.이 영패들의 실제 기능을 이해하려면 tweepy documentation를 보십시오.
    API 키를 확인하는 전자 메일이 수신되면 함수에 복사하여 예상대로 작동하도록 합니다.
    일단 이 모든 것이 완성되면 우리는 AWS나 나의 개인적인 추천heroku에서 우리의 로봇을 위탁 관리할 수 있다.heroku에서 로봇을 위탁 관리하는 좋은 지침.이제 응용 프로그램을 실행하기만 하면 됩니다. 무엇을 얻었는지 보여 주십시오.

    요셉🍇

    React 사용 중지
    14:2020년 9월 17일 오후 39시
    0
    0
    1. 물론 React를 사용하는 것을 제창합니다. 저는 베를린에서 일자리를 찾고 싶습니다. React가 그곳에서 취업 시장을 주도하고 있기 때문에 잠시 후에 트위터에 설명을 드리겠습니다.

    If you have any questions about this article or my bad syntax please message me at

    좋은 웹페이지 즐겨찾기