Get Result based on the Top value
Meeran Rizvi
hmmeeranrizvi18 at gmail.com
Mon Feb 6 07:29:35 EST 2017
On Friday, February 3, 2017 at 5:35:13 PM UTC+5:30, Meeran Rizvi wrote:
> Hello guys,
> Here i am creating a GUI which will act as a search engine.
> When you search for a data in search box it will fetch the results from the very first page in browser and it is displayed in a Text widget
> When the TOP value is 10 it should display only the first 10 results based on numbers.if it is 20 it should display first 20 results based on the number.
> How should i do that?
> Here is my script
> <python>
> from Tkinter import *
> import mechanize
> from bs4 import BeautifulSoup
> root = Tk()
>
> def clear_search():#Reset the search field
> Search.delete(0,END)
> Result.delete("1.0",END)
>
> def fun(self=0):
> new = Search.get()
> url = "https://duckduckgo.com/"
> br = mechanize.Browser()
> br.set_handle_robots(False)
> br.open(url)
> br.select_form(name="x")
> br["q"] = str(new)
> res = br.submit()
> content = res.read()
> #print content
> soup = BeautifulSoup(content,"html.parser")
> mylink = soup.find_all('a')
> v = 0
> for i in mylink:
> try:
> if i.attrs['class'][0] == "result__a":
> v = v + 1
> Result.insert(END,v)
> Result.insert(END,i.text)
> Result.insert(END,'\n')
> elif i.attrs['class'][0] == "result__snippet":
> Result.insert(END,i.text)
> Result.insert(END,'\n')
> Result.insert(END,i.attrs['href'])
> Result.insert(END,'\n ')
> Result.insert(END,'--------------------------------------------------------------------------')
>
> except KeyError:
> pass
>
>
> with open("result1.xls", "w") as f:
> f.write(content)
>
> Value = Label(root,text="Value:", font="-weight bold")
> Value.grid(row=0,column=0,padx=15)
>
> Search = Entry(root,width=50)
> Search.grid(row=0,column=1)
>
> Top = Label(root,text="TOP",font="-weight bold")
> Top.grid(row=1,column=0)
>
> var = StringVar(root)
> var.set('10')
>
> Dropdownlist = OptionMenu(root,var,'10','20','50','100')
> Dropdownlist.grid(row=1,column=1,sticky="w")
>
>
> Go = Button(root,text="GO",width=5,command=fun)
> Go.bind("<Key>",fun)
> Go.grid(row=1,column=1)
>
>
>
>
> Reset = Button(root,text="RESET",width=5,command=clear_search)
> Reset.grid(row=1,column=1,sticky="e")
>
> Result = Text(root,height=20,width=75)
> Result.grid(row=2,column=1,padx=50,pady=10)
> Scroll = Scrollbar(root,command=Result.yview)
> Scroll.grid(row=2,column=2,sticky=N+S)
> Result.config(yscrollcommand=Scroll.set)
>
> root.mainloop()
>
> </python>
i just changed these things to fix the scroll bar height.
Using ipady to increase the height of a scrollbar.
Result = Text(root,height=20,width=69)
Result.grid(rowspan=10,columnspan=40,sticky='W',padx=5)
Scroll = Scrollbar(root,command=Result.yview)
Scroll.grid(row=1,column=6,ipady=135)
Result.config(yscrollcommand=Scroll.set)
More information about the Python-list
mailing list