解析来自网站的链接,并在Python中将特定链接作为变量输出
我第一次尝试用python进行web抓取时,又被卡住了解析来自网站的链接,并在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:
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']