我正在尝试使用CSS选择器从网站上抓取信息,以获取特定的文本元素,但遇到了问题。我尝试搜索该网站的所需部分,但是我的程序告诉我该网站不存在。我的程序返回一个空列表。
我正在使用请求和lxml库,并正在使用CSS选择器进行HTML抓取。我有Python 3.7。我尝试使用选择器搜索我需要的网站部分,但该部分没有出现。我也尝试过使用XPath,但这也失败了。我尝试使用以下选择器:
div#showtimes
使用此选择器时,将得到以下结果:
[<Element div at 0x3bf6f60>]
我得到了预期的结果,这是所需的元素。当我尝试更进一步并访问嵌套在div#showtimes元素内的元素(见下文)时,我得到一个空列表。
div#showtimes div
我得到以下结果:
[]
通过检查网站的HTML,我知道div#showtimes元素中有一个嵌套元素。其他网页上也发生了此问题。我正在使用下面的代码。
import requests
from lxml import html
from lxml.cssselect import CSSSelector
# Set URL
url = "http://www.fridleytheatres.com/location/7425/Paramount-7-Theatres-
Showtimes"
# Get HTML from page
page = requests.get(url)
data = html.fromstring(page.text)
# Set up CSSSelector
sel = CSSSelector('div#showtimes div')
# Apply Selector
results = sel(data)
print(results)
我希望输出是一个包含元素的列表,但是它返回一个空列表[]。
最佳答案
如果我正确理解了该问题,则您正在尝试获取div
元素,该元素是div#showtimes
的子元素。尝试使用div#showtimes > div
。