| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | import rpycimport timefrom fastapi import FastAPIimport sysimport osimport datasetimport requestsimport datetimeimport jsonimport astfrom fastapi.responses import JSONResponsefrom fastapi.middleware.cors import CORSMiddlewareimport kw_plannerdb = dataset.connect('sqlite:///similar.db')app = FastAPI()origins = [    "http://www.googo.org",    "http://www.googo.org:8080",    "http://www.googo.org:8001",    "http://0.0.0.0:8080",    "http://googo.org:8080",    "http://googo.org",    "http://139.162.121.30"]app.add_middleware(    CORSMiddleware,    allow_origins=origins,    allow_credentials=True,    allow_methods=["*"],    allow_headers=["*"],)@app.get("/index")async def index():    return FileResponse('index.html')@app.post("/dm/{domain_name}")async def get_domain(domain_name):    url = "https://similarweb2.p.rapidapi.com/pageoverview"    if 'http' not in domain_name:        domain_name='http://'+domain_name    domain_name = domain_name.replace('%3A',':')    domain_name = domain_name.replace('%2F','/')    print(domain_name)    querystring = {"website":domain_name}    headers = {    "x-rapidapi-key": "6dd30886e0msh7aefc9a0a794398p1896f2jsn275c45475609",        "x-rapidapi-host": "similarweb2.p.rapidapi.com"        }    response = requests.request("GET", url, headers=headers, params=querystring)    print(response.text)    js=json.loads(response.text)    print(response.text)    jsdict={'SiteName':js['name'],'Description':js['siteDescription'],'GlobalRank':js['globalRank'],'Title':js['name'],'Category':js['categoryRank']['taxonomy'],'CountryRank':js['countryRank']['rank']}    url = "https://similarweb2.p.rapidapi.com/trafficoverview"    querystring = {"website":domain_name}    response = requests.request("GET", url, headers=headers, params=querystring)    js2=json.loads(response.text)    print(response.text)    jsdict['EstimatedMonthlyVisits']=js2['monthlyVisitsEstimate']#    desc=js['siteDescription']#    ustr=desc.encode('utf-8').decode('utf-8')#    print(ustr)    return JSONResponse(content=jsdict)@app.get("/keyword/{keyword}}")async def keyword(keyword):    print(keyword)    return "OK"@app.get("/domain/{domain_name}")async def read_item(domain_name):    cursor=db.query('select domain_name,json,dt from similar where domain_name="'+domain_name+'"')    for c in cursor:        print(c['json'])        print(c['dt'])#        jsdict=ast.literal_eval(c['json'])        jsdict=json.loads(c['json'])        return JSONResponse(content=jsdict)    print(domain_name)#    conn = rpyc.connect("localhost",12345)    conn = rpyc.connect("192.168.192.119",12345)    #domain_name    jsdata=conn.root.get_url('https://data.similarweb.com/api/v1/data?domain='+domain_name)    print(jsdata)#    jsdict=str(jsdata)[1:-1]#    jsdict=json.loads(str(jsdata))    jsdict=ast.literal_eval(str(jsdata))#    jsdict=str(jsdata)    table=db['similar']    jstr=json.dumps(jsdict)    table.insert({'domain_name':domain_name,'json':jstr,'dt':datetime.datetime.now()})    db.commit()    return JSONResponse(content=jsdict)#    print(jsdata)#    return {"item_id": domain_name}
 |