Я пытаюсь определить, есть ли веб-сайт из списка веб-сайтов, если интернет-магазин или нет.
Кажется, что большинство интернет-магазинов имеют:
- тег
a
со словом 'cart' в их href
- Тег
li
, назначенный классу со словом 'cart' в имени класса
Я полагаю, что мне придется воспользоваться преимуществами регулярных выражений, а затем сказать методу BeautifulSoup find
, чтобы искать в данных HTML для этого регулярного выражения в теге a
или li
. Как мне поступить об этом?
Пока что приведенный ниже код ищет в данных HTML тег a
с href
ТОЛЬКО корзиной.
Код
import re
from bs4 import BeautifulSoup
from selenium import webdriver
websites = [
'https://www.nike.com/',
'https://www.youtube.com/',
'https://www.google.com/',
'https://www.amazon.com/',
'https://www.gamestop.com/'
]
shops = []
driver = webdriver.Chrome('chromedriver')
options = webdriver.ChromeOptions()
options.headless = True
options.add_argument('log-level=3')
with webdriver.Chrome(options=options) as driver:
for url in websites:
driver.get(url)
cart = re.compile('.*cart.*', re.IGNORECASE)
soup = BeautifulSoup(driver.page_source, 'html.parser')
if soup.find('a', href=cart):
shops.append(url)
print('\nSHOPS FOUND:')
for shop in shops:
print(shop)
Выход:
SHOPS FOUND:
https://www.nike.com/
https://www.amazon.com/