解析来自网站的链接,并在Python中将特定链接作为变量输出

解析来自网站的链接,并在Python中将特定链接作为变量输出,python,web,web-scraping,beautifulsoup,html-parsing,Python,Web,Web Scraping,Beautifulsoup,Html Parsing,我第一次尝试用python进行web抓取时,又被卡住了 url = link page = requests.get(url) soup = BeautifulSoup(page.content, features="lxml") checkout_link = [] links = soup.find_all("a") for url in soup.find_all('a'): if url.get('href') == None:

我第一次尝试用python进行web抓取时,又被卡住了

url = link
page = requests.get(url)
soup = BeautifulSoup(page.content, features="lxml")
checkout_link = []
links = soup.find_all("a")
for url in soup.find_all('a'):
    if url.get('href') == None:
        pass
    elif len(url.get('href')) >= 200:
        checklist += 10
        for search in links:
            if "checkout" in search.get("href"):
                checkout_link = search.get("href")
            else:
                pass
    else:
        pass

这就是我现在的代码。所有链接的解析工作正常(我希望这一部分检查总共有多少链接可用,并认为在一个请求中同时进行这两个操作是一个好方法。如果我尝试的方式错误,请更正我),即使我搜索结帐链接并打印它,我也会打印正确的链接参考,但我找不到将其存储在结帐链接中的解决方案来进一步使用它。我想在以后向这个特定的签出url发出请求。

您需要将其附加到列表中

checkout_link.append(search.get("href"))
考虑使用*contains运算符通过属性选择器进行href筛选:

soup.select_one("[href*=checkout]")['href']

工作非常完美,我对代码做了一点修改,并将两者合并为“checkout\u link=soup.select\u one(“[href*=checkout]”['href']”)-使其更加流畅。谢谢你的帮助!select唯一的问题是。一种方法是如果href没有签出,比如“购物车”-我是否能够像(“[href*=checkout]”,“[href*=cart]”['href']?
soup那样在其中存储多个值。选择一个(“[href*=checkout],[href*=cart]”['href']