Проверка нескольких веб-сайтов для окна поиска?

#python #web-scraping

#python #очистка веб-страниц

Вопрос:

нужен метод для очистки нескольких веб-сайтов для проверки наличия в них функций поиска (окна поиска).

мой след включал использование «BeautifulSoup», но не все веб-сайты используют похожие имена классов, плюс есть пользовательский поиск Google. метод, который я использую в настоящее время, очень грубый и лишь частично обнаруживает наличие окна поиска.

 import requests
from bs4 import BeautifulSoup,Comment
page = requests.get(url)
SA = 0
soup = BeautifulSoup(page.text, 'html.parser')
result=soup.find_all('input')
tags = []
for x in result:
    tags.extend(str(x))
strings = []
i=0
sentence = ''.join(tags)
if 'search' in sentence:
    print('there is a search bar')
else
    print('there is no search bar')
  

Я ожидаю лучшего метода, который может успешно определить, присутствует ли окно поиска или нет.

Комментарии:

1. вы не используете class. Вы используете тип / тег. Можете ли вы привести несколько неудачных примеров, которые вы хотели бы видеть найденными.

2. да, в настоящее время я использую теги. ранее я пробовал это с использованием классов, таких как из bs4 import BeautifulSoup soup = BeautifulSoup(page.text, ‘html.parser’) soup.find(‘form’,{‘class’:’search-form’}) soup.find(‘form’,{‘class’:’content-search’}) soup.find(‘form’,{‘class’:’Search_bar’}) soup.find(‘form’,{‘class’:’Search_bar’}) soup.find(‘form’,{‘class’:’search_bar’) soup.find(‘form’,{‘class’:’search_bar’: ‘форма-поиск’})

3. неудачные примеры? URL-адреса

4. pondiuni.edu.in использует имя класса «search-form» uohyd.ac.in использует имя класса «поле ввода» многие другие сайты используют другое имя для своего класса

5. похоже, что использование тега ввода — хороший подход, а затем проверка, выполняется ли поиск в html по соответствующим элементам. Вы также можете передавать списки селекторов, разделенных символом «,», для выбора, например, select(‘ввод, .search,………..)