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...