我用请求和 BeautifulSoup 编写了一个网络爬虫,但在 DOM 中有一个我找不到的元素。
这就是我所做的:
import requests
from bs4 import BeautifulSoup
r = requests.get('http://www.decitre.fr/rechercher/result/?q=victor+hugo&search-scope=3')
soup = BeautifulSoup(r.text)
我找不到的元素是“旧价格”(被删除的那个),当我使用浏览器开发工具检查 DOM 时可以看到它。
soup.find_all(class_='old-price') # returns [], no matter if I specify "span"
此外,我看不到汤中的“旧价格”字符串或请求的结果:
'old-price' in soup.text # False
'old-price' in r.text # False
当我得到源时我也看不到它wget
。
我可以得到它的 div 父级,但在其中找不到价格子级:
commands = soup.find_all(class_='product_commande')
commands[0].find_all('old-price') # []
所以我不知道发生了什么。我错过了什么?
- 我用错了 request/BeautifulSoup 吗?(我不确定 r.text 是否返回完整的 html)
- 那个html部分是用javascript代码生成的吗?如果是这样,我怎么知道它,有没有办法获得完整的 html ?
非常感谢