>

야후 수입 일정을 정리하여 날짜를 가져 오려면 어떻게해야하나요?

파이썬 3 용입니다.

from bs4 import BeautifulSoup as soup
import urllib
url = 'https://finance.yahoo.com/calendar/earnings?day=2019-06-13&symbol=ibm'
response = urllib.request.urlopen(url)
html = response.read()
page_soup = soup(html,'lxml')
table = page_soup.find('p')
print(table)

출력이 "없음"

  • 답변 # 1

    아름다운 수프에는 DOM을 검사하는 데 사용할 수있는 찾기 기능이 있습니다. 설명서를 참조하십시오

    from bs4 import BeautifulSoup as soup
    import urllib.request
    url = 'https://finance.yahoo.com/calendar/earnings?day=2019-06-13&symbol=ibm'
    response = urllib.request.urlopen(url)
    html = response.read()
    page_soup = soup(html,'lxml')
    table = page_soup.find_all('td')
    Dates = []
    for something in table:
        try:
            if something['aria-label'] == "Earnings Date":
                Dates.append(something.text)
        except:
            print('')
    print(Dates)
    
    

  • 답변 # 2

    주제에 맞지 않을 수 있지만 웹 페이지에서 테이블을 가져 오려면 다음 두 줄로 작동하는 팬더를 사용하는 것이 좋습니다.

    import pandas as pd
    earnings = pd.read_html('https://finance.yahoo.com/calendar/earnings?day=2019-06-13&symbol=ibm')[0]
    
    

  • 답변 # 3

    간결한 두 가지 방법이 있습니다

    import requests
    from bs4 import BeautifulSoup as bs
    r = requests.get('https://finance.yahoo.com/calendar/earnings?day=2019-06-13&symbol=ibm&guccounter=1')
    soup = bs(r.content, 'lxml')
    # using attribute = value selector
    dates = [td.text for td in soup.select('[aria-label="Earnings Date"]')]
    #using nth-of-type to get column
    dates = [td.text for td in soup.select('#cal-res-table td:nth-of-type(3)')]
    
    

관련 자료

  • 이전 emacs - 마지막 커밋 메시지 수정 및 업스트림 푸시
  • 다음 javascript - Firefox에서 windowgetSelection () toString ()이 작동하지 않습니다 (Chrome에서 작동)