iT邦幫忙

0

請問這個是不是就一定不能使用with語法了?(已解決)

  • 分享至 

  • xImage
from playwright.sync_api import sync_playwright
while total_post < 1000:
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=False)
        # browser = p.chromium.launch()#顯示瀏覽器
        page = browser.new_page()        

    url = f'https://www.sehuatang.org/forum.php?mod=forumdisplay&fid=95&orderby=dateline&orderby=dateline&filter=dateline&page='+str(page_count)
    page.goto(url)

browser = p.chromium.launch(headless=False)
# browser = p.chromium.launch()#顯示瀏覽器
page = browser.new_page()
因為上面這幾行我只要執行一次就可以了
但是後面一些對網頁的操作在下一次while還是需要執行
那該如何讓上面這幾句只執行一次不被重複執行?

froce iT邦大師 1 級 ‧ 2024-03-15 08:41:15 檢舉
你這兩句哪有只執行一次?
放在while裡,while跑多少次就執行了多少次啊...
alien663 iT邦研究生 3 級 ‧ 2024-03-15 08:47:31 檢舉
那...你有沒有試試看把那幾行移到while上面
fdfanmo iT邦新手 5 級 ‧ 2024-03-15 15:04:37 檢舉
把那幾行移到while上面是不可以的
因為with sync_playwright() as p:結束後續還需要操作瀏覽器
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
froce
iT邦大師 1 級 ‧ 2024-03-15 10:52:42
最佳解答
with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page() 
    
    while total_post < 1000:
        url = f'https://www.sehuatang.org/forum.php?mod=forumdisplay&fid=95&orderby=dateline&orderby=dateline&filter=dateline&page='+str(page_count)
        page.goto(url)

這樣才對吧...

看更多先前的回應...收起先前的回應...
SunM0on iT邦新手 4 級 ‧ 2024-03-15 11:20:44 檢舉

我怎麼感覺total_post是無窮迴圈,...估計還有問題

froce iT邦大師 1 級 ‧ 2024-03-15 11:42:47 檢舉

那他的事,我只給架構而已。

fdfanmo iT邦新手 5 級 ‧ 2024-03-15 15:20:50 檢舉

回SunM0on大迴圈部分我有設定跳出的條件.

fdfanmo iT邦新手 5 級 ‧ 2024-03-15 15:21:30 檢舉

froce大師出手問題果然秒解.實在佩服啊.

我要發表回答

立即登入回答