You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import pyppeteerimport asyncioasync def _get_link(browser,link): pages = await browser.pages() page = pages[0] await page.goto(link) webpage = None for i in range(20): try: webpage = await page.content() break except: time.sleep(1) return webpage async def _single_link(brower,link): webpage = await _get_link(brower,link) await brower.close() return webpage
async def _multi_link(brower,links): results = {} for link in links: webpage = await _get_link(brower,link) result[link] = webpage await brower.close() return results
def get_link(links,headless = False,proxy = None): loop = asyncio.get_event_loop() run = loop.run_until_complete opts = { 'headless':headless, } if proxy: opts['args'] = ['--proxy-server={}'.format(proxy)] browser = run(pyppeteer.launch(**opts)) if isinstance(links,list): result = run(_multi_link(brower,links)) else: result = run(_single_link(browser,links)) return result
|