如何打开一个新的选项卡使用Python剧作家通过提供它的url列表?



根据剧作家文档,在浏览器中打开新选项卡的方式如scrap_post_info()函数所示?然而,它没有这样做。

我现在要做的是循环通过posts列表变量中的每个URL,然后在新选项卡中打开链接或URL,以废弃帖子详细信息。完成抓取后,标签将被关闭,并继续打开下一个链接在一个新的标签,以废弃的帖子详细信息再次,直到它达到最后一个URL在posts列表变量。

# Loop through each URL from the `posts` list variable that contains many posts' URLs
for post in posts:
scrap_post_info(context, post)
def scrap_post_info(context, post):
with context.expect_page() as new_page_info:
page.click('a[target="_blank"]')  # Opens a new tab
new_page = new_page_info.value
new_page.wait_for_load_state()
print(new_page.title())

在我的一个项目中做类似的事情,我将这样做。

from playwright.sync_api import sync_playwright
posts = ['https://playwright.dev/','https://playwright.dev/python/',]
def scrap_post_info(context, post):
page = context.new_page()
page.goto(post)
print(page.title())
# do whatever scraping you need to
page.close()
with sync_playwright() as p:
browser = p.chromium.launch()
context = browser.new_context()
for post in posts:
scrap_post_info(context, post)
# some time delay
browser.close()

Thing是剧作家文档中的代码片段,更多的是关于在单击现有页面上的链接后打开一个新页面。既然你已经准备好了url,你可以一个一个地访问每个页面,然后做你的抓取。

最新更新