Блок кода работает нормально без метода и неправильно, пока блок кода находится в методеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Блок кода работает нормально без метода и неправильно, пока блок кода находится в методе

Сообщение Anonymous »

У меня есть фрагмент кода, который извлекает результаты поиска с веб-сайта. Я маскирую веб-сайт, но делюсь блоком кода здесь.

Код: Выделить всё

search_page_url = "https://mysite.results/search"
session = requests.Session()
response = session.get(search_page_url)
soup = BeautifulSoup(response.text, "html.parser")

view_state = encode_str(soup.find("input", {"id": "__VIEWSTATE"})["value"])
payload = f"__VIEWSTATE={view_state}"

headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'en-US,en;q=0.9',
'cache-control': 'max-age=0',
'content-type': 'application/x-www-form-urlencoded',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'
}

response = session.post(search_page_url, headers = headers, data = payload, allow_redirects=True)
soup = BeautifulSoup(response.text)
Это отлично работает и возвращает результаты, однако когда я добавляю этот код в метод, подобный приведенному ниже, он не возвращает правильные результаты, а вместо этого снова показывает страницу поиска:

Код: Выделить всё

def search():
search_page_url = "https://mysite.results/search"
session = requests.Session()
response = session.get(search_page_url)
soup = BeautifulSoup(response.text, "html.parser")

view_state = encode_str(soup.find("input", {"id": "__VIEWSTATE"})["value"])
payload = f"__VIEWSTATE={view_state}"

headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'en-US,en;q=0.9',
'cache-control': 'max-age=0',
'content-type': 'application/x-www-form-urlencoded',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'
}
response = session.post(search_page_url, headers = headers, data = payload, allow_redirects=True)
soup = BeautifulSoup(response.text)

search()
Мне интересно, не связано ли это с областями действия?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-method
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»