import re
import sys
import urllib.parse
import requests
def query_to_url(query):
return urllib.parse.quote(query)
def main(query='Телефоны СПбГУТ'):
print(f'Запрос "{query}" в Яндекс-Поиске')
search_query_url = f"https://yandex.ru/search/?text={query_to_url(query)}"
print('URL:', search_query_url)
rq = requests.get(search_query_url)
text = rq.text
regex = re.compile(r'\D((?:8|\+7)[\- ]?)(\(?\d{3}\)?[\- ]?)([\d\- ]{7,10})(,\d{1,6})?\D')
if 'captcha' in text:
print('Яндекс требует ввод капчи.')
print('Попробуйте в следующий раз или введите название файла с кодом страницы: ', end='')
filename = input()
if 1 <= len(filename) <= 255:
with open(filename, 'r') as fp:
text = fp.read()
else:
print(f'Длина имени файла должна быть от 1 до 255')
return
mobile_numbers = [''.join(x).strip() for x in re.findall(regex, text)]
print(*mobile_numbers, sep=', ')
if __name__ == "__main__":
if len(sys.argv) > 1:
try:
main(sys.argv[-1])
except Exception as e:
print(*e.args, sep=', ')
else:
print(f'python3.6 main.py <query>')