Я очень мало знаю о Python. Но я пытался добиться чего-то в Extract, Transform and Load (ETL), используя небольшой скрипт Python. Я получаю желаемый результат, но все же хочу понять этот скрипт.Понимание методов класса в коде Python
from bs4 import BeautifulSoup
import urllib
import re
import string
import csv
urlHandle = urllib.urlopen("http://finance.yahoo.com/q/cp?s=^DJI")
html = urlHandle.read()
soup = BeautifulSoup(html)
table = soup.find('table', attrs = {
'id': 'yfncsumtab'
})
rows = table.findAll('tr')
a = ''
csvfile = open("F:/data/yahoofinance.csv", 'w')
for tr in rows[5: ]:
for td in tr.find_all('td', attrs = {
'class': 'yfnc_tabledata1'
}):
a += '"' + td.get_text() + '",'
a += '\n'
csvfile.write(a)
a = '
Мои вопросы в этом коде, soup
является объект, возвращаемый из BeautifulSoup(html)
функции. Я прав? Итак, в следующем утверждении я предполагаю, что table
также является объектом, так что означает, что мы ищем значение в объекте soup
с использованием функции find
и что оно возвращает объект?
Пожалуйста, поправьте меня на моей информации, я понял себя в приведенном выше коде ...
urlHandle
класс,urllib
что? иurlopen
- статический метод.html
- объект,urlhandle
- класс,read
- это метод.soup
является объектом,BeautifulSoup(html)
является функцией.
Просьба высказать свое мнение о моем понимании .... и исправить меня, где не так с вашими опытными словами!
Джесси Баккер, спасибо! Еще один вопрос, что происходит в таблице = soup.find ('table', attrs = {'id': 'yfncsumtab'). Вот таблица в объекте? Если да, то СО создается при поиске функции поиска в суп-объекте? – Kate
Да, soup.find находит таблицу, а затем создает объект, обертывающий html. –