記一次pyppeteer的使用

2021-10-05 15:14:59 字數 2582 閱讀 8154

import asyncio

from pyppeteer import launch

import re, os,time

async

defcreate_page()

: browser =

await launch(headless=

true

, dumpio=

true

)return browser

async

defclose_page

(browser)

:await browser.close(

)async

defstart

(sem, url)

:# print(url)

async

with sem:

#控制協程的併發量

page =

await browser.newpage(

)await page.goto(url)

# for i in range(10): # 執行js**向下滾動滾動條

# dimensions = await page.evaluate(f'var q=document.documentelement.scrolltop=')

# await asyncio.sleep(1)

# sn = re.search('sn=(.*?)&', url).group(1)

# with open(os.path.join(r'e:\study\out', f'.html'), 'ab') as f:

# data = await page.content()

# f.write(data.encode('utf8'))

print

(await page.content())

await page.close(

)if __name__ ==

'__main__'

: sem = asyncio.semaphore(5)

fundlist =

path = r'c:\users\admin\desktop\新建 文字文件.txt'

loop = asyncio.get_event_loop(

) browser = loop.run_until_complete(create_page())

#建立乙個瀏覽器物件

for line in

open

(path,

'r')

: task =

[loop.create_task(start(sem, url)

)for url in fundlist]

loop.run_until_complete(asyncio.wait(task)

) loop.run_until_complete(close_page(browser)

)

launch_kwargs =

設定viewport 自動獲取當前螢幕大小並設定viewport

# coding:utf8

import asyncio

from pyppeteer import launch

defscreen_size()

:"""使用tkinter獲取螢幕大小"""

import tkinter

tk = tkinter.tk(

) width = tk.winfo_screenwidth(

) height = tk.winfo_screenheight(

) tk.quit(

)return width, height

async

defmain()

: launch_kwargs =

# 啟動瀏覽器

browser =

await launch(launch_kwargs)

# 開啟標籤頁

page =

await browser.newpage(

)# 預設 800 * 600 一般是不夠的

print

(page.viewport)

# width, height = screen_size(

)# 設定網頁可視區域大小

await page.setviewport(

)await browser.close(

)return

asyncio.get_event_loop(

).run_until_complete(main(

))

匯出或載入cookie

# 取出cookie

cookies =

await page.cookies(

)# 這裡可以做些什麼 :)

pass

# 然後匯入cookie

await page.setcookie(

*cookies)

記一次的使用

將jsp拆分frame框架,因為採用了第一種方式,一直在考慮用jquery非同步請求獲取資料,總是但不到效果,終於在js寫吐的時候選擇了第二種方式。參考網上的使用,大多是下面這個樣子,如果涉及靜態頁面之間定位,是沒有問題的 href 為目標頁面 通過target定位到frame views main...

記一次muse ui 使用

vue init webpack test musenpm i muse ui snpm i babel plugin import less less loader d然後,將.babelrc的 plugins 裡面新增一段 裡面的 plugins import 在使用的時候出現過乙個問題,專案本...

記一次vue splitpane使用

splitpane 分割面板元件 介紹,是乙個可以拖動選單寬度,可以生成想要 的選單寬度和內容寬度的一種布局方式。v on resize resize methods else if newwidth this.stepboxwidth this.stepboxwidth json.parse js...