在Python中检查URL是否包含列表中的所有元素

在Python中检查URL是否包含列表中的所有元素,python,string,Python,String,我正在做一个项目,我想制作一个所有Ebay商品URL的列表,这些URL与给定的一组关键字和一个设定的价格相匹配。到目前为止,我已经设法让它工作,首先创建一个URL的格式,EBay需要使用用户的输入关键字和价格,然后只返回该页面中包含/itm/的URL,因为这些将是项目URL。然而,当关键字变得太具体时,我遇到了一个问题。当Ebay在给定搜索中显示的结果少于10个时,它还将为您提供一些指向“相关产品”的链接,这些“相关产品”与您的部分但不是全部关键词相匹配。我不想返回这些相关产品的链接。我尝试将输

我正在做一个项目,我想制作一个所有Ebay商品URL的列表,这些URL与给定的一组关键字和一个设定的价格相匹配。到目前为止,我已经设法让它工作,首先创建一个URL的格式,EBay需要使用用户的输入关键字和价格,然后只返回该页面中包含/itm/的URL,因为这些将是项目URL。然而,当关键字变得太具体时,我遇到了一个问题。当Ebay在给定搜索中显示的结果少于10个时,它还将为您提供一些指向“相关产品”的链接,这些“相关产品”与您的部分但不是全部关键词相匹配。我不想返回这些相关产品的链接。我尝试将输入的用户关键字拆分为一个列表,然后在其中放入一个If语句,其中URL必须包含此列表中的所有元素,但这不起作用,我得到了以下错误消息:TypeError:“in”需要字符串作为左操作数,而不是bool

请参阅下面的代码。任何帮助都将不胜感激

import requests
from bs4 import BeautifulSoup
import cherrypy

user_keyword = input("What would you like to search for? ")

print(user_keyword)


keywords_url = user_keyword.replace(' ', '%20')


user_price = input("What is your maximum price? ")

url_part1 = 'http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw='
url_part2 = '&_dcat=55793&rt=nc&_mPrRngCbx=1&_udlo&_udhi='

url = (url_part1 + keywords_url + url_part2 + user_price)


r= requests.get(url)

data = r.text

soup = BeautifulSoup(data, "html.parser")

for link in soup.find_all('a'):
    if link.has_attr('href'):
        if '/itm/' in link['href']: #Makes sure we only get actual item links
          if all(user_keyword.split(' ')) in link['href']: 
              print(link['href'])

Python关键字
all
基本上是一个逻辑值列表(或类似列表)。因此,您必须首先单独测试
user\u关键字
中的每个单词,然后对最终结果使用
all

if all(链接中的单词['href']表示用户中的单词\关键字分割(“”)):

这段代码使用列表理解生成布尔值的列表(或者更确切地说是生成器,因为没有列表标记[]),如果链接包含所有用户关键字,则所有值都是
True