21
09月
2023
对应的数据卷的代码
import osfrom typing import Listfrom fastapi import FastAPI, Queryfrom selenium import webdriverfrom selenium.webdriver.chrome.options import Options app = FastAPI()@app.get("/")def read_root(url: List[str] = Query(None)): youku_url = url[0] cookie = "/app/youku_cookies.txt" rs = os.popen('you-get -c ' + cookie + ' --json ' + youku_url) res = rs.buffer.read().decode(encoding='utf8') st = "" for line in res.splitlines(): st += line return st@app.get("/chrome/")def read_chrome(url: List[str] = Query(None)): get_url = url[0] chrome_options = Options() chrome_options.add_argument('--headless') # 无界面 chrome_options.add_argument('--no-sandbox') # 解决DevToolsActivePort文件不存在报错问题 chrome_options.add_argument('--disable-gpu') # 禁用GPU硬件加速。如果软件渲染器没有就位,则GPU进程将不会启动。 chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_experimental_option('mobileEmulation', {'deviceName': 'iPhone X'}) # 模拟iPhone X浏览 driver = webdriver.Chrome('chromedriver', options=chrome_options) driver.get(get_url) content = driver.page_source driver.quit() return content
运行方法
docker run -it -d -p 8081:80 --name name hongjiang11/python-api:1.4
api 访问
ip:8081/?url = 网址
//chrome 无头解析
ip:8081/chrome/?url = 网站