#python #web #web-scraping #beautifulsoup #html-parsing
Вопрос:
Я снова застрял с моими первыми попытками в веб-очистке с помощью python.
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
Так что это мой код прямо сейчас. Анализ всех ссылок работает нормально (я хочу, чтобы в этой части было проверено, сколько ссылок доступно в общей сложности, и подумал, что было бы неплохо сделать и то, и другое в одном запросе. Поправьте меня, если я пытаюсь сделать это неправильно), даже если я найду ссылку для оформления заказа и распечатаю ее, я получу правильную ссылку, но я не могу найти решение для ее сохранения в checkout_link, чтобы использовать ее в дальнейшем. После этого я хочу сделать запрос на этот конкретный URL-адрес для оформления заказа.
Ответ №1:
Вам нужно добавить его в список
checkout_link.append(search.get("href"))
Подумайте о том, чтобы выполнить фильтрацию href с помощью селектора атрибутов с помощью оператора * содержит:
soup.select_one("[href*=checkout]")['href']
Комментарии:
1. Работает отлично, я немного изменил код и объединил их как «checkout_link = суп.select_one(«[href*=проверка]»)[‘href’]» — делает его более плавным. Спасибо за помощь!
2. Единственное, что было бы проблемой с select.одним из методов было бы, если бы href не был проверен, например «корзина» — могу ли я хранить в нем несколько значений, например («[href*=проверка]», «[href*=корзина]») [‘href’] ?
3.
soup.select_one("[href*=checkout] , [href*=cart]")['href']