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

使用列表搜索字符串并返回多字变量。

使用列表搜索字符串并返回多字变量。

小怪兽爱吃肉 2021-05-06 17:12:18
下面的代码。我在做什么的解释:我有一个关键字列表。我需要确定这些关键字是否出现在任何给定的网页(我输入的网页)上。我遇到的问题是超过两个字的关键字。例如,如果您查看下面的结果,您会看到“星号”和“战争”未出现在列表中。“星球大战”是我的关键字列表中的一个短语,我需要将结果显示为“星球大战”,而不是两个单独的项目。目前,我将bs4中的文本转换为字符串,然后转换为列表,我知道这是不正确的,因为它基于“”进行分隔,默认情况下,该文本将拆分我要搜索的短语。有没有一种方法可以直接在字符串中搜索导入列表中存在的短语?from bs4 import BeautifulSoupfrom urllib.request import Request, urlopenimport reimport pandas as pd#Wikipedia Adress heresite= "website.html"hdr = {'User-Agent': 'Mozilla/5.0'}req = Request(site,headers=hdr)page = urlopen(req)soup = BeautifulSoup(page,'lxml')#Company Website Heresite = "website.html"hdr = {'User-Agent': 'Mozilla/5.0'}req = Request(site,headers=hdr)page = urlopen(req)soup2 = BeautifulSoup(page,'lxml')#Extracts text from soup and saves as souptext variablegettext = soup.get_text()gettext2 = soup2.get_text()#converts to stringsouptext = str(gettext)souptext2 = str(gettext2)#converts to listsplit = souptext.split(' ')split2 = souptext2.split(' ')#combines both splits to one single listcombined = split + split2#combines both strings to one stringcombinedstr = souptext.lower() + souptext2.lower()#Imports Excel File containing keywordsdf = pd.read_csv('Movies.csv')#Extracts desired column variables as keywordsmylist = df['Titles'].tolist()liststr = str(mylist)intersection = [i for i in mylist if i in combined]results = list()results.append(intersection)print(results)[['Avatar', 'Goodfellas', 'Saw', 'Crash', 'Gladiator', 'Scarface']]请求输入,因此这是我会看到的网页文本的示例(是一个字符串):电影迷们已经逐渐远离诸如《星球大战》和《星际迷航》之类的怀旧电影。新一代更喜欢具有现代特效和CGI的电影,例如Avatar。在这种情况下,“星球大战”和“星际迷航”将成为mylist中的关键字。但是,它们不会显示在结果中,因为它们是两个单词的变量。目前,我已将代码设置为将html文本字符串拆分为一个列表。这适用于单个标题的电影,但不适用于包含多个单词的电影。这是我要在这里解决的主要问题。我知道拆分字符串将不允许我将标题与多个单词相交。
查看完整描述

2 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

有没有一种方法可以直接在字符串中搜索导入列表中存在的短语?

是的,请使用in接线员。

>>> ' bar ' in 'foo bar baz'
True

您会注意到,在这里我在搜索项周围放置了空格以防止出现此类问题:

>>> 'bar' in 'the barren wasteland'
True

在文本的开头和结尾,您仍然会遇到单词方面的问题。您可以在文本上添加空格来解决此问题,也可以开始研究正则表达式。


查看完整回答
反对 回复 2021-05-25
  • 2 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信