Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,23 +1,53 @@
|
|
|
|
1 |
import streamlit as st
|
2 |
-
from requests_html import
|
3 |
|
4 |
-
def perform_search(search_query):
|
5 |
-
session =
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
results = []
|
11 |
for result in search_results:
|
12 |
-
title = result.
|
13 |
-
link = result.
|
14 |
-
results.append(
|
|
|
15 |
return results
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
st.write(
|
22 |
-
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import asyncio
|
2 |
import streamlit as st
|
3 |
+
from requests_html import AsyncHTMLSession
|
4 |
|
5 |
+
async def perform_search(search_query, search_engine):
|
6 |
+
session = AsyncHTMLSession()
|
7 |
+
if search_engine == "Google":
|
8 |
+
url = f"https://www.google.com/search?q={search_query}"
|
9 |
+
elif search_engine == "Bing":
|
10 |
+
url = f"https://www.bing.com/search?q={search_query}"
|
11 |
+
response = await session.get(url)
|
12 |
+
await response.html.arender(sleep=1)
|
13 |
+
|
14 |
+
# Extract search results based on the search engine
|
15 |
+
if search_engine == "Google":
|
16 |
+
search_results = response.html.find(".yuRUbf a")
|
17 |
+
elif search_engine == "Bing":
|
18 |
+
search_results = response.html.find(".b_algo h2 a")
|
19 |
+
|
20 |
results = []
|
21 |
for result in search_results:
|
22 |
+
title = result.text
|
23 |
+
link = result.attrs["href"]
|
24 |
+
results.append({"title": title, "link": link})
|
25 |
+
|
26 |
return results
|
27 |
|
28 |
+
def main():
|
29 |
+
st.set_page_config(page_title="Web Search App", page_icon=":mag:", layout="wide")
|
30 |
+
|
31 |
+
st.title("Web Search App")
|
32 |
+
st.write("Search Google and Bing simultaneously!")
|
33 |
+
|
34 |
+
search_query = st.text_input("Enter your search query")
|
35 |
+
|
36 |
+
col1, col2 = st.columns(2)
|
37 |
+
|
38 |
+
with col1:
|
39 |
+
st.header("Google Search Results")
|
40 |
+
if st.button("Search Google"):
|
41 |
+
google_results = asyncio.run(perform_search(search_query, "Google"))
|
42 |
+
for result in google_results:
|
43 |
+
st.write(f"[{result['title']}]({result['link']})")
|
44 |
+
|
45 |
+
with col2:
|
46 |
+
st.header("Bing Search Results")
|
47 |
+
if st.button("Search Bing"):
|
48 |
+
bing_results = asyncio.run(perform_search(search_query, "Bing"))
|
49 |
+
for result in bing_results:
|
50 |
+
st.write(f"[{result['title']}]({result['link']})")
|
51 |
+
|
52 |
+
if __name__ == "__main__":
|
53 |
+
main()
|