Skip to content

Commit 245017b

Browse files
committed
bs4 testapp added
1 parent bd975de commit 245017b

File tree

1 file changed

+128
-0
lines changed

1 file changed

+128
-0
lines changed

testapps/BeautifulSoup4/main.py

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
from kivy.app import App
2+
from kivy.uix.button import Button
3+
from kivy.uix.textinput import TextInput
4+
from kivy.uix.label import Label
5+
from kivy.uix.boxlayout import BoxLayout
6+
from kivy.uix.gridlayout import GridLayout
7+
from kivy.lang import Builder
8+
from kivy.uix.popup import Popup
9+
from kivy.uix.image import AsyncImage
10+
11+
import requests
12+
from bs4 import BeautifulSoup
13+
14+
Builder.load_string(
15+
'''
16+
<PopupScreen>:
17+
orientation: 'vertical'
18+
Label:
19+
text: "Enter Your movie name buddy"
20+
TextInput:
21+
id: name
22+
font_size: 40
23+
multiline: False
24+
Button:
25+
text: "show details"
26+
on_press: root.detail(name.text)
27+
28+
''')
29+
global writer
30+
writer = "Writers:"
31+
global actor
32+
actor = "Actors:"
33+
global director
34+
director = "Directors:"
35+
class PopupScreen(BoxLayout):
36+
def error(self):
37+
popup = Popup(title="ERROR",content=Label(text="Bro, Check your movie name"),size_hint=(0.8,0.8))
38+
popup.open()
39+
40+
def Pop(self,movie,imdb,actor,director,writer,url):
41+
wid1 = GridLayout(cols=2,rows=1)
42+
lb = AsyncImage(source=url)
43+
wid1.add_widget(lb)
44+
wid2 = GridLayout(rows=4)
45+
lb = Label(text=imdb)
46+
wid2.add_widget(lb)
47+
48+
lb = Label(text=actor)
49+
wid2.add_widget(lb)
50+
lb = Label(text=director)
51+
wid2.add_widget(lb)
52+
lb = Label(text=writer)
53+
wid2.add_widget(lb)
54+
55+
wid1.add_widget(wid2)
56+
popup = Popup(title=movie,content=wid1,size_hint=(0.8,0.8))
57+
popup.open()
58+
59+
def detail(self, title):
60+
61+
global writer
62+
writer = "Writers:"
63+
global actor
64+
actor = "Actors:"
65+
global director
66+
director = "Directors:"
67+
68+
s="+".join(title.split())
69+
70+
71+
f_url = 'http://www.imdb.com/find?q='
72+
url=f_url+s+'&s=all'
73+
try:
74+
var = requests.get(url)
75+
soup = BeautifulSoup(var.content)
76+
77+
x = soup.find("td", {"class": "result_text"})
78+
m = x.find("a")['href']
79+
80+
new_url = 'http://www.imdb.com' + m
81+
content = requests.get(new_url)
82+
soup = BeautifulSoup(content.content)
83+
84+
img = soup.find("div", {"class":"poster"})
85+
url = img.findChildren()[1]['src']
86+
87+
x = soup.find("div", {"class": "title_wrapper"})
88+
89+
c = x.findChildren()[0]
90+
91+
movie = c.text
92+
93+
c = soup.find("div", {"class":"ratingValue"})
94+
95+
imdb = c.text
96+
97+
98+
99+
for tag in soup.find_all("span", {"itemprop":"director"}):
100+
101+
102+
director += tag.text
103+
104+
105+
for tag in soup.find_all("span", {"itemprop":"creator"}):
106+
107+
writer += tag.text
108+
109+
110+
111+
for tag in soup.find_all("span", {"itemprop":"actors"}):
112+
113+
actor += tag.text
114+
115+
116+
117+
self.Pop(movie,imdb,actor,director,writer,url)
118+
119+
except Exception:
120+
121+
self.error()
122+
123+
124+
class MovieApp(App):
125+
def build(self):
126+
return PopupScreen()
127+
128+
MovieApp().run()

0 commit comments

Comments
 (0)