BackgroundInfo:Отсутствует определенная часть файлов cookie, используя request.get()?
Я выскабливание амазонки. Мне нужно настроить cookie сеанса перед использованием request.session.get(), чтобы получить окончательную версию исходного кода страницы URL-адреса.
Код:
import requests
# I am currently working in China, so it's cn.
# Use the homepage to get cookies. Then use it later to scrape data.
homepage = 'http://www.amazon.cn'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'}
response = requests.get(homepage,headers = headers)
cookies = response.cookies
#set up the Session object, so as to preserve the cookies between requests.
session = requests.Session()
session.headers = headers
session.cookies = cookies
#now begin download the source code
url = 'https://www.amazon.cn/TCL-%E7%8E%8B%E7%89%8C-L65C2-CUDG-65%E8%8B%B1%E5%AF%B8-%E6%96%B0%E7%9A%84HDR%E6%8A%80%E6%9C%AF-%E5%85%A8%E6%96%B0%E7%9A%84%E9%87%8F%E5%AD%90%E7%82%B9%E6%8A%80%E6%9C%AF-%E9%BB%91%E8%89%B2/dp/B01FXB0ZG4/ref=sr_1_2?ie=UTF8&qid=1476165637&sr=8-2&keywords=L65C2-CUDG'
response = session.get(url)
Желаемый результат:
При навигации к амазонки странице в Chrome, печенье должно быть что-то вроде:
Как вы можете найти в части файлов cookie, которую я подчеркиваю красным цветом, часть файлов cookie, установленных ответом на наш запрос на домашнюю страницу, - «ubid-acbcn», которая также является частью заголовка запроса, вероятно, оставлена от последнего посещение.
Это то, что я хочу получить в cookie, которое я попытался получить по вышеуказанному коду.
В коде python это должен быть файл cookieJar или словарь. В любом случае, его содержание должно быть что-то, что содержит 'ubid-acbcn' и 'идентификатор сеанса':
{'ubid-acbcn':'453-7613662-1073007','session-id':'455-1363863-7141553','otherparts':'otherparts'}
Что я получаю вместо: 'Session-Id' есть, но «ubid-acbcn» отсутствует.
>>homepage = 'http://www.amazon.cn'
>>headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'}
>>response = requests.get(homepage,headers = headers)
>>cookies = response.cookies
>>print(cookies.get_dict()):
>>{'session-id': '456-2975694-3270026','otherparts':'otherparts'}
Связанные Информация:
- ОС: WINDOWS 10
- ПИТОН: 3.5
- запросы: 2.11.1
Я извиняюсь за то, что немного многословным ,
То, что я пытался и фигура:
- Я гугл определенных ключевых слов, но никто, кажется, не сталкивается с этой проблемой .
- Я полагаю, что это может быть связано с амазоном противоскользящей мерой. Но кроме меня изменить мои заголовки, чтобы маскировать себя как человека, я не знаю, что я должен делать.
- Я также рассмотрел возможность того, что tt не может быть случаем отсутствия cookie. Но, скорее, я не настроил свои запросы.get (домашняя страница, заголовки = заголовки) должным образом, поэтому response.cookie не так, как ожидалось. Учитывая это, я попытался скопировать заголовок запроса в моем браузере, оставив только часть файла cookie, но в ответном cookie отсутствует часть «ubid-acbcn». Может быть, какой-то другой параметр нужно настроить?
Это странно. Я пробовал это сегодня, но это не сработало. Так как вы явно получаете то, что я. Что-то должно быть не так с моей попыткой. У меня есть VPN на заднем плане, но он попытался отключить его, но не получит желаемого результата. Позже я заметил, что может быть, что я просмотрел веб-сайт, поэтому я перехожу к настройкам Chrome, чтобы удалить файлы cookie для amazon.cn, но это все равно не сработает. –