python - 如何通过python呈现'如果trs中的tr [a]有一个名称为'hot'的标签?
问题描述
我正在使用 python(最新版本)和 jupyter notebook。我对函数(def del_line)有问题。如果 trs 中的 tr[a] 有一个名称为 'hot' 的标签,我想让它“删除 line[a,a+3]”。我试过了,但它没有删除 div id = "hot" 的 tr 标签。我应该改变什么?
from bs4 import BeautifulSoup
import urllib
from selenium import webdriver
url = 'http://oulim.kr'
driver = webdriver.Chrome('./driver/chromedriver')
driver.get(url)
frames = driver.find_elements_by_tag_name('frame')
driver.switch_to.frame(frames[0])
html = driver.page_source
soup = BeautifulSoup(html,'html.parser')
the_table = soup.select_one('#divAlba> table:nth-child(3)')
trs = the_table.find_all('tr')
def del_line(line):
del line[0]
for a in range(len(line)):
temp = id in line[a]
if temp == "hot":
del line[a,a+3]
return line
del_line(trs)
driver.close()
解决方案
问题是这条线if temp == "hot":
总是会是假的。这是因为您正在为变量分配布尔值temp
,而不是字符串。
line[a] in id
检查成员资格:如果line[a]
在可迭代对象中找到,则id
评估为 True,否则为 False。这就是您temp
在该行中分配的内容temp = line[a] in id
。所以比较实际上看起来像if True == "hot"
or if False == "hot"
,当然这些条件总是 False。
我相信你想要temp = line[a]
。
推荐阅读
- c# - C# 控制台硒 | 从文本文件中读取行
- javascript - TypeError:无法在“Node”上执行“insertBefore”:参数 2 不是“Node”类型。角材料
- python - 如何比较二维分布?
- apache-kafka - 更改 Kafka Streams 内部主题的复制因子会影响更改日志/重新分区主题名称中的数字吗?
- bazel - 如何在 Bazel 中包含上层参考?
- c++ - 为什么 CMake 会忽略源文件?
- javascript - 如何在 html/js 中查找外部 IP
- paypal - Paypal 智能支付按钮和创建订阅给我一个 RESOURCE_NOT_FOUND 错误
- javascript - 我无法从 firebase 获取 document.data
- java - 使用java提取音频增益