如何使用剧作家捕捉特定的重定向?

97年的呢。
97年的呢。
订阅者
277
文章
0
粉丝
测试交流1 211字数 286阅读0分57秒阅读模式
摘要当谷歌地图在一定程度上确认了某个地点搜索时,它会重定向到特定的谷歌地点url,否则它会返回一个地图搜索结果页面。 谷歌地图搜索;manarama。。。

当谷歌地图在一定程度上确认了某个地点搜索时,它会重定向到特定的谷歌地点url,否则它会返回一个地图搜索结果页面。

谷歌地图搜索;manarama“;是文章源自玩技e族-https://www.playezu.com/180681.html

https://www.google.com/maps/search/manarama/@23.7505522,90.3616303,15z/数据=!4m2!2m1!6e6文章源自玩技e族-https://www.playezu.com/180681.html

重定向到Google Place URL文章源自玩技e族-https://www.playezu.com/180681.html

https://www.google.com/maps/place/Manarama+29+Rd+No.+14A,+Dhaka+1209/@23.7505522,90.3616303,15z/数据=!4m5!3m4!10x3755bf4dfc183459:0xb9127b8c3072c249!8m2!3d23.750523!4d90.3703851文章源自玩技e族-https://www.playezu.com/180681.html

谷歌地图搜索结果页面看起来像下面的链接,当它没有确认的具体地点文章源自玩技e族-https://www.playezu.com/180681.html

https://www.google.com/maps/search/Mana/@24.211316,89.340686,8z/数据=!3m1!4b1文章源自玩技e族-https://www.playezu.com/180681.html

import asyncio
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch(headless=False)
page = await browser.new_page()
await page.goto("https://www.google.com/maps/search/manarama/@23.7505522,90.3616303,15z/数据=!4m2!2m1!6e6", wait_until="networkidle")
print(page.url)
await page.close()
await browser.close()
asyncio.run(main())

有时它会返回重定向的URL,但大多数情况下,它不会返回。如何确定URL是否已重定向到某个位置URL?下面的StackOverflow帖子有相似之处,但不能适用于我的案例文章源自玩技e族-https://www.playezu.com/180681.html

如何使用playwright通过webapp捕捉重定向文章源自玩技e族-https://www.playezu.com/180681.html 文章源自玩技e族-https://www.playezu.com/180681.html

 
    • Charchit
      Charchit 9

      您可以使用expect_导航。
      在您提到的关于与函数匹配的url的评论中。几乎所有这样的剧作家都接受正则表达式模式。因此,当有疑问时,只需使用正则表达式。见以下代码:
      import asyncio
      from playwright.async_api import async_playwright, 超时Error
      import re

      pattern = re.compile(r"http.*://.+?/place.+")

      async def main():
      async with async_playwright() as p:
      browser = await p.chromium.launch(headless=False)
      page = await browser.new_page()
      try:
      async with page.expectu导航(url=pattern, 超时=7000) as resp:
      await page.goto(
      "https://www.google.com/maps/search/manarama/@23.7505522,90.3616303,15z/data=!4m2!2m1!6e6",
      wait_until=’networkidle’)
      except 超时Error:
      print(‘place not found’)
      else:
      print(‘navigated to place’)

      print(page.url)
      await page.close()
      await browser.close()

      asyncio.run(main())

      为了检查页面是否被导航,只需将函数包装在 尝试除了 阻挡并通过适当的 超时 参数(毫秒)到 expectu导航. 那么如果 超时 出现错误,您知道没有任何url更改符合我们的模式。

    匿名

    发表评论

    匿名网友
    确定

    拖动滑块以完成验证