Мой cookie-запрос не работает на сервере, но работает локально (Azure Web Appservices)
Я использую свой веб-куки из chrome для входа в сеть с помощью запросов python. Это отлично работает на localhost http://127.0.0.1:8000/, но когда я развертываю это на azure App Services, это больше не работает и показывает "WARNING: Login Failed!!!"
class MySpider(scrapy.Spider):
def __init__(self, link, text):
self.link = link
self.cookie = 'my_cookies'
self.user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'
self.text = text
def login(self, url):
headers = {
'User-Agent': self.user_agent,
'Cookie': self.cookie,
}
session = requests.Session()
response = session.get(url, headers=headers)
response.text.encode('utf-8')
if response.status_code != 200:
print('WARNING: Login Failed!!')
return response
Я пытался изменить cookies и IP инбонда, но все равно получаю WARNING: Login Failed!!!
- Обработка сессий в Scrapy не зависит от модуля
requests
. Вы используетеrequests.Session()
внутри паука Scrapy, но Scrapy имеет свои собственные механизмы обработки запросов, сессий и куки.
Лучше обрабатывать куки и управление сессиями с помощью встроенных инструментов Scrapy, а не вставлять requests
в код. Scrapy предоставляет параметр cookie
в Request
объектах.
Код:
import scrapy
class MySpider(scrapy.Spider):
name = "my_spider"
def __init__(self, link, text):
self.link = link
self.cookies = {'my_cookies': 'cookie_value'}
self.user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'
self.text = text
def start_requests(self):
headers = {
'User-Agent': self.user_agent,
}
yield scrapy.Request(
url=self.link,
headers=headers,
cookies=self.cookies,
callback=self.parse
)
def parse(self, response):
# Process the login response here
if response.status != 200:
self.logger.warning('Login Failed!!')
else:
self.logger.info('Login successful.')
# Continue with your parsing logic here
Локальный домен отличается от домена Azure Убедитесь, что файл cookie действителен для домена Azure. Попробуйте получить свежий файл cookie, действительный для домена Azure.
Залогинен:
2024-09-23 12:45:32 - INFO - Attempting login to [testappt-c4g0abb6e3ffhkff.eastus-01.azurewebsites.net] https://testappt-c4g0abb6e3ffhkff.eastus-01.azurewebsites.net/login with headers: {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36', 'Cookie': 'cookie_name=value; other_cookie=value2'}
2024-09-23 12:45:34 - INFO - Response Status Code: 200
2024-09-23 12:45:34 - INFO - Response Cookies: <RequestsCookieJar[<Cookie sessionid=abcdef1234567890 for .example.com/>]>
2024-09-23 12:45:34 - INFO - Response Headers: {'Date': 'Mon, 23 Sep 2024 12:45:34 GMT', 'Content-Type': 'text/html; charset=utf-8', 'Set-Cookie': 'sessionid=abcdef12339402890; expires=Mon, 30-Sep-2024 12:45:34 GMT; HttpOnly; Path=/'}
2024-09-23 12:45:34 - INFO - Login successful.