python - 如何通过xpath获取元素
问题描述
我正在为网站设计一个使用 python scrapy 的刮板
https://www.kimovil.com/de/wo-kaufen-oneplus-2-3gb-16gb-cn
我已经通过 expath 提取了许多元素,但无法获得手机的存储版本。
通过检查元素,可以获取 xpath,但是当尝试在 scrapy shell 中调用时,它会返回:
[]
解决方案
一些事实:
- 这是一个大型网站,他们花了一些时间开发它,它可能使用了现代技术
- 它正在加载
https://www.kimovil.com/build/app-js.227fce30.js
它app
的名称和build
路径
由此判断,他们使用了某种 JS 前端框架,并且当scrapy 到达网页时,DOM 并不完整。您正在寻找的数据正在被加载,并且 DOM 在生命周期的后期被操作。
您可以检查您的浏览器正在发出的请求,https://www.kimovil.com/_json/oneplus-2-3gb-16gb-cn_prices_deals.json
例如其中之一。
或者您可以使用基于 selenium 的抓取框架或其他可以在页面上运行 javascript 的框架。
推荐阅读
- python - 如何将 groupby() 和 value_counts() 变成多个饼图/条形图
- flutter - SearchDelegate 与 ChangeNotifier + Provider
- python - 从列表中删除所有出现的给定元素
- python - 如何仅将泊松概率转换为小数
- java - 如何使用 PrintWriter 仅删除文件中的几个字符
- python - 如何更改此代码的输出以仅输出前 2 张卡?
- javascript - 在Javascript中搜索数组时如何修复输出“未定义”
- rust - Rust 中的 usize/isize 类型是否保证始终为 32 位或 64 位?
- reactjs - 使用 AWS Amplify 托管保留查询字符串 - React
- text - 如何在 Notepad++ 中为单词列表的所有实例添加相同的前缀?