我正在尝试创建一个从 Github 获取数据的程序,在 Github 的配置文件描述中应该有一些字符串。但我无法使用 not in 声明。 git_url = "https://github.com:443/search?p=2&q="+str(payload)+"&type=Users" rr = requests.get(git_url, headers=headers, cookies=cookies) page = bs4.BeautifulSoup(rr.text,"lxml") page_parse = page.select('.user-list-info p') for i in range(len(page_parse)): test = page_parse[i].text var = '@Grab' if var not in test: print(page_parse[i].text) else: print('Not')虽然输出不起作用,但它仍然只显示带有抓取的字符串,而我只想仅使用 @grab 获取字符串。 在此输出
1 回答

LEATH
TA贡献1936条经验 获得超6个赞
如果要打印包含'@Grab'或 的行'@ Grab',可以使用:
test = page_parse[i].text
if ('@Grab' in test) or ('@ Grab' in test):
print(test)
或者,如果您有许多想要测试的字符串,将它们放在这样的列表中可能会更容易:
test = page_parse[i].text
if any(item in test for item in ['@Grab', '@ Grab']):
print(test)
条件var or var2 in test总是True为的原因是因为 Python 将此表达式解析为(var) or (var2 in test)(由于运算符优先级,因为in绑定比 更“紧密” or)。由于var是一个非空字符串,因此它True在布尔上下文中进行评估。所以
(var) or (var2 in test)
相当于
True or (var2 in test)
始终评估为True.
添加回答
举报
0/150
提交
取消