• Как грамотно составить запрос на сайт с правильной кодировкой?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Это - url закодированая строка в кодировке cp1251. Так что сначала кодируем ее в cp1251 через .encode('cp1251'), затем делаем urlencoding через urllib.parse.quote_plus()
    Затем. Запрос там не get, а post, так что ставим его. Но сайт ничего не хотел возвращать, ему нужно побольше информации. Добавил куки + некоторые заголовки. Почему-то в словарь с formdata вы вместо word добавили url, так что исправим на word. Ну и приобразил немного в другой формат всю formdata

    import requests
    import urllib.parse
    
    
    word = urllib.parse.quote_plus(input('Введите слово для поиска синонимов: ').encode('cp1251'))
    url = 'http://trishin.net/'
    
    
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
                'Referer': 'http://trishin.net/',
                'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
                'Content-Type': 'application/x-www-form-urlencoded'}
    
    s = requests.Session()
    s.get('http://trishin.net')
    
    payload = 'mode=leftPart&searchText={}&left=456511&right=2726'.format(word)
    response = s.post(url, data=payload, headers=headers)
    
    print(response.text)
    Ответ написан
    Комментировать
  • Существует ли функция парсинга текста по шаблону?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    А чем тот же re не устраивает?

    import re
    
    str1="""<тег>1</тег><тег>2</тег><тег>3</тег>"""
    for res in re.findall(r'<тег>(.*?)<\/тег>', str1):
        print(res)

    1
    2
    3
    Ответ написан
    1 комментарий
  • Как из строки получить словарь (из str в dict)?

    NeiroNx
    @NeiroNx
    Программист
    Можно привести к стандарту json или eval(обычный или безопасный из пакета ast)
    >>> sunofdog = "{'d': '19', 'mon': '09', 'month': 'Сентябрь',  'address': 'Г. Кемерово ул. Ноградская д. 16, кв. 1'}"
    >>> a = json.loads(sunofdog.replace("'",'"'))
    >>> type(a)
    "<class 'dict'>"
    >>> b = eval(sunofdog)
    >>> type(b)
    "<class 'dict'>"
    >>> a
    {'d': '19', 'mon': '09', 'month': 'Сентябрь', 'address': 'Г. Кемерово ул. Ноградская д. 16, кв. 1'}
    >>> a == b
    True
    >>> 
    >>> import ast
    >>> c = ast.literal_eval(sunofdog)
    >>> a == c
    True
    >>>
    Ответ написан
  • Есть мысли, как спарсить расписание по чётной и по нечётной неделе?

    @bbkmzzzz
    Элементы принадлежат трем классам
    sch_two - 2 неделя
    sch_one - 1 неделя
    sch_all - все
    Например:
    <td class="sch_para  sch_two" onmouseover="glow('on',this);" onmouseout="glow('off',this);">

    вторая неделя:
    "sch_para sch_two"
    Ответ написан
    Комментировать