如何从网站上的嵌入地图获取文本?

问题描述 投票:0回答:1

我编写了一段代码,用于访问网页并在该页面中搜索从检查元素到另一个网站的链接。访问该网站后,我需要从嵌入该网页的地图中获取地址的邮政编码。它在页面源代码上不可用,所以我猜它是动态加载的,我不能为此使用 BeautifulSoup。

为此我使用了 HTMLSession。我复制了 XPATH 来搜索标签,一切都很好。我得到了链接并能够连接到第一个网站。 问题是,当我尝试对嵌入在我登陆的页面上的地图执行相同操作时,我无法执行相同的 XPATH 搜索。当我尝试使用 print(zip_container.text) 打印它时,它只是返回一个空列表或说“NoneType 对象没有属性 .text”或其他内容。

我知道嵌入的地图必须动态加载,因此我不能直接使用BeautifulSoup。我究竟做错了什么? 我也不能也不想为此使用 Selenium。我知道 requests_html 是可能的,我只是不明白我哪里出了问题。

这是我编写的代码,模块已全部导入,并且第一个网页的代码由于不相关而未发布:

store_urls = 'https://www.miyazaki-recycle.com/recycling-station/14821/'

session = HTMLSession()
response =  session.get(store_urls, timeout=60)
response.html.render(sleep=10) 
zip_container = response.html.xpath('//*[@id="mapDiv"]/div/div[3]/div[3]/div/div/div/div/div[1]/div[2]', first=True)
print(zip_container)

我也尝试过使用 find 如下,但它也不起作用:

zip_container = response.html.find('div.address', first=True)

如果需要任何其他信息,请告诉我。 我对 python 也很陌生,所以请放轻松。

编辑:把它留给那些愚蠢的人来投票,根本不提供答案,甚至不提供建议。

python web-scraping beautifulsoup python-requests python-requests-html
1个回答
0
投票

预期数据位于 iframe 中,您应该先选择 iframe:

enter image description here

或者可以拦截iframe请求的响应:

enter image description here

如果您需要使用 puppeteer 或 playwright 来验证上述方法,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.