问题描述
我想将以下网站中的所有商店数据导出到excel文件中: https://www.ybpn.de/ihre-parfuemerien
问题:地图是“动态的”,因此在输入邮政编码时会加载所需的数据。
需要的数据存储在div类“ storefinder__list-item”中,并且在data-“ storefinder-reference” div类中具有唯一引用,例如:data-storefinder-reference =“ 132”
我尝试过:
soup.find("div",{"data-storefinder-reference": "132"})
但输出为: NONE
我认为此问题是由于页面是动态的,因此在输入邮政编码时会加载所需的数据。因此,当我搜索参考ID“ 132”时,它的“那里”却没有加载到网站上,bs4找不到此ID。
有什么想法可以改进代码吗?
解决方法
为此,您可能需要研究selenium和/或“ firefox-headless”之类的工具。
特别是硒,您可以使用Python“远程控制”网页
这是一个教程:https://realpython.com/modern-web-automation-with-python-and-selenium/
,如果问题是在等待页面加载,则可以使用硒。
`result = driver.execute_script('var text = document.title ; return text')`
如果页面上有jquery,那肯定是
result=driver.execute_script("""
$(document).ready({
var $text=$('yourselector').text()
return $text
})
""")
,注意:对于硒,您可以查看here
您可以仅以chrome或ff打开页面,打开Web调试控制台并查询元素。如果您看到它们,它们就在dom中,因此可以查询。但这将在javascript中完成。如果您很幸运,他们会使用jquery。