|
|
|
from fastapi import FastAPI |
|
import time |
|
from bs4 import BeautifulSoup |
|
from selenium import webdriver |
|
from selenium.webdriver.chrome.service import Service |
|
from selenium.webdriver.chrome.options import Options |
|
from webdriver_manager.chrome import ChromeDriverManager |
|
chrome_options = Options() |
|
chrome_options.add_argument('--no-sandbox') |
|
chrome_options.add_argument('--headless') |
|
chrome_options.add_argument('--disable-gpu') |
|
chrome_options.add_argument('--disable-dev-shm-usage') |
|
|
|
app = FastAPI() |
|
favicon_path='https://www.iconarchive.com/download/i49313/martin-berube/sport/Soccer.ico' |
|
|
|
@app.get("/") |
|
def read_root(): |
|
return {"Hello": "World"} |
|
@app.get("/selenium/") |
|
async def read_item(reqUrl,tag): |
|
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=chrome_options) |
|
url= reqUrl |
|
driver.get(url) |
|
time.sleep(3) |
|
soup = BeautifulSoup(driver.page_source,'lxml') |
|
headings = soup.find_all( name= tag) |
|
a=[] |
|
for heading in headings: |
|
a.append(heading.getText()) |
|
driver.quit() |
|
return {"Hello": a} |
|
|
|
|
|
|