Форум сайта python.su
Всем привет. Столкнулся с проблемой при написании программы. Буду благодарен, если подскажете, в каком месте ошибка. Есть веб-интерфейс, реализованный через Tkinter, содержащий одну кнопку. При ее нажатии, должны парситься titles с сайта globo.com
Сам по себе парсинг работает, но совместно с Tkinter ерунда. Сначала выполняется код и только потом запускается окно с кнопкой. Код приведен ниже. Спасибо
from lxml import html
import requests
from bs4 import BeautifulSoup
def news():
page = requests.get('http://www.globo.com/index.html')
soup = BeautifulSoup(page.content, ‘html.parser’)
bbb = soup.find_all('p', class_='hui-premium__title')
for item in bbb:
ccc = item.get_text('p')
print(ccc)
from tkinter import *
master = Tk()
b = Button(master, text=“latest news”, command='news()')
b.pack()
mainloop()
Офлайн
неправильно:
andrey.y24правильно:
b = Button(master, text=“latest news”, command='news()')
b = Button(master, text=“latest news”, command=news)
[code python][/code]
Отредактировано PEHDOM (Апрель 6, 2017 20:58:52)
Офлайн
@PEHDOM спасибо, но не помогло
Все равно, сначала запускается функция, и потом только появляется окно с кнопкой. Как же сделать, чтоб функция запускалась только после нажатия кнопки?
Офлайн
andrey.y24
Я думаю, Вы сделали
b = Button(master, text=“latest news”, command=news())
Офлайн
@4kpt_V
Убрал скобки, все равно функция запускается сразу, до нажатия кнопки (
from lxml import html
import requests
from bs4 import BeautifulSoup
import terra_web_scraping
from terra_web_scraping import *
def news():
page = requests.get('http://www.globo.com/index.html')
soup = BeautifulSoup(page.content, 'html.parser')
bbb = soup.find_all('p', class_='hui-premium__title')
for item in bbb:
ccc = item.get_text('p')
print(ccc)
from tkinter import *
master = Tk()
b = Button(master, text="latest news", command=news)
b.pack()
mainloop()
Отредактировано andrey.y24 (Апрель 7, 2017 00:17:34)
Офлайн
Возникает ощущение, что Вы нас обманываете. Что делает тогда такой код
# from tkinter import * from lxml import html import requests from bs4 import BeautifulSoup import terra_web_scraping from terra_web_scraping import * def news(): print("callback") master = Tk() b = Button(master, text="latest news", command=news) b.pack() master.mainloop()
Отредактировано 4kpt_V (Апрель 7, 2017 12:22:21)
Офлайн