当谷歌地图在一定程度上确认了某个地点搜索时,它会重定向到特定的谷歌地点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
未知地区 1F
您可以使用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更改符合我们的模式。