为了账号安全,请及时绑定邮箱和手机立即绑定

如何将字符串与 bs4 对象进行比较

如何将字符串与 bs4 对象进行比较

白猪掌柜的 2021-08-14 21:42:03
我正在尝试创建一个从 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.


查看完整回答
反对 回复 2021-08-14
  • 1 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号