我正在製作一個項目,我想要生成一個與給定的一組關鍵字和設置價格匹配的所有Ebay項目URL的列表。到目前爲止,我已經設法通過首先使用用戶的輸入關鍵字和價格以eBay要求的格式創建URL,然後僅返回來自該頁面的包含/ itm /的URL,因爲這些將是項目URL 。但是,當關鍵字過於具體時,我遇到了問題。當Ebay針對特定搜索出現少於10條結果時,它還會爲您提供一些與「相關產品」相關的鏈接,可與某些關鍵字但不是全部相匹配。我不想返回這些相關產品的鏈接。我試圖通過將輸入用戶關鍵字分割成一個列表,然後放置一個If語句,其中的URL必須包含此列表中的所有元素,但沒有起作用,並且我收到此錯誤消息:TypeError:'in'需要字符串作爲左操作數,而不是bool。檢查一個URL是否包含Python中列表中的所有元素
看到我的代碼如下。任何幫助,將不勝感激!
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'])