使用熊猫按样式查找元素



在我目前正在使用的解析器中,我能够通过按样式过滤来正确查找和打印我在标签中搜索的元素。但是,当我尝试从标签中提取时,bs4 在按样式过滤时找不到我的结果。 这是我对有效标签的:

eventData = soup.find_all("div", style = "margin-right: 8px; padding: 8px 0px 16px 16px; overflow: hidden; color: rgb(68, 68, 68); font-size: 15px;")
# append each event as a list within datalist
for i in range(0, len(eventData)):
eventElement = html_text.extract_text(str(eventData[i]))
numEvents.append(eventElement)
print("Events Date, Time & Location: ", eventElement)
print("# of Events:", len(numEvents))

正确结果:

活动日期、时间和地点:美国东部时间 1 月 24 日星期五下午 5:00 活动数量: 1

这是不起作用的:

datalist = []  # empty list to hold html text
# search for the required text for events
EventName = soup.find_all("h3", style = "font-size: 17px; font-weight: 600; overflow: hidden; margin: 2px 0px 5px; line-height: 20px; display: -webkit-box; max-width: 400px; -webkit-line-clamp: 2; -webkit-box-orient: vertical; text-overflow: ellipsis;")
for i in range(0, len(EventName)):
eventName = html_text.extract_text(str(EventName[i]))
datalist.append(eventName)
print("n")
print("Event Name: ", str(EventName))
print("# of Items: ", len(EventName))

print("# of items: "( 说有 0 个项目,但是当我删除样式过滤器时:

事件名称 = soup.find_all("h3"(

结果说有两个项目(搜索栏也有 h3 标签(,并给了我页面 html 的结果,而不是应有的字符串。我如何解决此问题以使我的结果打印一个字符串,就像它在整个解析器中与其他 3 个div 标签一样? 我知道 bs4 在查找此类内容时遇到一些问题,因此如果我应该使用其他库,请告诉我。

谢谢!

我发现了这个问题: 我需要改变

print("Event Name: ", str(EventName)) 

自:

print("Event Name: ", str(eventName))

然后给了我事件名称的正确结果。 最简单的错误。

最新更新