使用CSS选择器查找某些<div>标签时遇到问题

时间:2019-01-22 06:51:47

标签: python html web-scraping css-selectors

我正在尝试使用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)

我希望输出是一个包含元素的列表,但是它将返回一个空列表[]。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了该问题,则您正在尝试获取一个div元素的div#showtimes元素。尝试使用div#showtimes > div