div元素内的文本未使用Beautifulsoup和请求打印出来

问题描述

我正在尝试编写脚本以刮擦ebay列表,但是遇到刮刮说明并将其存储在变量中的问题。这只是我的代码的相关部分:

import requests
from bs4 import BeautifulSoup

item = '293716122560'
url = 'https://www.ebay.co.uk/itm/' + item
result = requests.get(url)
soup = BeautifulSoup(result.text,'lxml')

description = soup.find(id="ds_div")
print(description)

但是,我的输出是这样:

None

如您所见,不是很有用。我尝试解决这个问题已经有很长时间了,但是我发现这与html的结构有关。任何人都可以做一些测试并帮助我,将不胜感激。谢谢

解决方法

看起来该元素已使用JavaScript渲染,因此请求将看不到它。您可以使用Selenium代替获取它的请求:https://selenium-python.readthedocs.io/