#python #batch-file #python-requests
#python #пакетный файл #python-запросы
Вопрос:
Я пытаюсь выполнить некоторую веб-очистку с помощью python. Мой код хорошо работает в pycharm, но когда я пытаюсь запустить его из window CMD, запрос не возвращает ту же информацию о странице, что и в pycharm.
код:
from requests import get
from bs4 import BeautifulSoup as bs
resp = get('https://instagram.com/{}'.format('nfl'))
soup = bs(resp.text, 'html.parser')
В pycharm (первые строки HTML-страницы)
<html class="no-js not-logged-in client-root" lang="en">
<head>
<meta charset="utf-8"/>
<meta content="IE=edge" http-equiv="X-UA-Compatible"/>
<title>
**NFL (@nfl) • Instagram photos and videos**
</title>
В WINDOWS CMD с тем же кодом
<html class="no-js not-logged-in client-root" lang="en">
<head>
<meta charset="utf-8"/>
<meta content="IE=edge" http-equiv="X-UA-Compatible"/>
<title>
**Login • Instagram**
</title>
Похоже, что в Windows cmd он игнорирует название страницы «nfl», и запрашивает толькоhttps://www.instagram.com /
Кто-нибудь может помочь?
Спасибо
Комментарии:
1. Можете ли вы исправить свой
user-agent
на что-то вродеMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0
для сценария и проверки? Вы можете сделать это, создав dictheaders = {'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0'}
и передав его в запросе с помощьюget(<url>,headers=headers)
. Дайте мне знать, если это что-то изменит для вас.2. @Mooncrater, не работает с этой модификацией. Все тот же ответ в Windows cmd
3. Хорошо. Единственное, что вы можете сделать, это напечатать URL запрашиваемой страницы. Используйте
print(resp.url)
для этого. Обратите внимание, что даже если сайт выполняет перенаправление, печатается конечный URL. Так что это должно внести некоторую ясность.4. @Mooncrater по какой-то причине изменяет мой get с добавлением «учетные записи / логин» instagram.com/accounts/login/?next=/nfl
5. Ну, мое первое предположение заключается в том, что pycharm и Windows используют разные версии python , поэтому
requests
в этих случаях могут вести себя по-разному. В противном случае, для одного и того же скрипта не имеет смысла выдавать разные выходные данные при одинаковой среде.