Найти - Пользователи
Полная версия: Помогите разобраться с get-запросом
Начало » Python для новичков » Помогите разобраться с get-запросом
1
Vlad68
Есть задача от Яндекса - Напишите get-запрос к странице https://store.data-analyst.praktikum-services.ru/. Сохраните текстовое содержание запроса в переменной req_text. Напишите регулярное выражение, которое получает информацию внутри тегов <title> </title>. Выведите результат в следующем виде : <title>Текст внутри тега</title>.
Вот мой запрос:
import requests
import re
URL = 'https://store.data-analyst.praktikum-services.ru/'
req_text = requests.get(URL)
print(re.search('<title>+</title>', req_text.text).group())

Не могу понять в чем ошибка.
Спасибо всем за помощь !!!
py.user.next
Vlad68
Сохраните текстовое содержание запроса в переменной req_text.
Ты должен текст запроса сохранить в переменную. А ты не сохранил. Это ты сохраняешь под именем req_text объект, который является ответом, а потом из этого объекта, который является ответом, ты берёшь текст ответа.

wiki. HTTP
Пример запроса (текст запроса)
GET /wiki/страница HTTP/1.1
Host: ru.wikipedia.org
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: close
(пустая строка)
Пример ответа (текст ответа)
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: Apache
X-Powered-By: PHP/5.2.4-2ubuntu5wm1
Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT
Content-Language: ru
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close
(пустая строка)
(запрошенная страница в HTML)

Так что первая ошибка в этом. Ты в переменной req_text не то сохраняешь.

И вторая ошибка в том, что регулярное выражение у тебя неправильно составлено.

Сначала надо на тексте тренироваться
  
>>> import re
>>> 
>>> def f():
...     text = """\
... <html>
...   <head>
...     <title>Page</title>
...   </head>
...   <body>
... Hello
...   </body>
... </html>
... """
...     
...     pat = r'<title>(.+?)</title>'
...     
...     out = re.search(pat, text).group(1)
...     
...     print(text)
...     print('Title:', out)
... 
>>> f()
<html>
  <head>
    <title>Page</title>
  </head>
  <body>
Hello
  </body>
</html>
 
Title: Page
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB