Size: a a a

2018 August 06

DD

Danil Denysenko in Scrapy
уже нагуглил)
источник

B

Bulatbulat48 in Scrapy
Danil Denysenko
ты скидывал ссылку на request session. Можно в двух предложениях написать, как мне найчиться пользоваться такими ссылками? То что я вижу исходный код либы, мне мало чем помогает(
Не то кинул может)
источник

B

Bulatbulat48 in Scrapy
Вообщем смысл, видишь там session, это будет объект в который будет писаться все состояния пока ты не закроешь скрипт. Запросы делаешь через session.post .. или типо того
источник

DD

Danil Denysenko in Scrapy
или будет писаться до тех пор, когда закрою функцию, в которой вызывался объект, верно?
источник

B

Bulatbulat48 in Scrapy
Danil Denysenko
или будет писаться до тех пор, когда закрою функцию, в которой вызывался объект, верно?
зависит от scope в котором ты определяешь объект, если в функции то она будет видима только в функции
источник

B

Bulatbulat48 in Scrapy
»
import requests
>>def req():
   s = requests.Session()
   s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
   r = s.get('http://httpbin.org/cookies')
   print(r.text)
>>req()
{
 "cookies": {
   "sessioncookie": "123456789"
 }
}
>>r
Traceback (most recent call last):
 File "<input>", line 1, in <module>
NameError: name 'r' is not defined
источник

DD

Danil Denysenko in Scrapy
Bulatbulat48
»
import requests
>>def req():
   s = requests.Session()
   s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
   r = s.get('http://httpbin.org/cookies')
   print(r.text)
>>req()
{
 "cookies": {
   "sessioncookie": "123456789"
 }
}
>>r
Traceback (most recent call last):
 File "<input>", line 1, in <module>
NameError: name 'r' is not defined
ну а если я буду это в скрапи использовать?
источник

E

Evgen in Scrapy
он по умолчанию все в одной сессии держит
Если нужно разделять сессии - то нужно указывать номер сессии в meta['cookiejar']
источник

DD

Danil Denysenko in Scrapy
meta['cookiejar'] - это я где-то в сеттингах прописываю или при вызове функции parse()?
источник

B

Bulatbulat48 in Scrapy
Danil Denysenko
meta['cookiejar'] - это я где-то в сеттингах прописываю или при вызове функции parse()?
зачем тебе разные сессии?
источник

DD

Danil Denysenko in Scrapy
Bulatbulat48
зачем тебе разные сессии?
у меня же куча параметров разных будет.
источник

DD

Danil Denysenko in Scrapy
если я буду пост запросы отправлять с одними  и теми же параметрами, я буду ходить по одному и тому же пути. Сессия, насколько я понимаю, нужна для того чтобы хранить мои пост запросы. И вот, например, у меня есть страница и в сесии к ней храится 20 параметром, и мне надо из нее перейти на новую страницу, как оно будет знать какой имено мне параметр надо? Я, видимо не понимаю( но если будет новая сессия, такого недоразумения не произойдет
источник

E

Evgen in Scrapy
сессия хранит не пост запросы, а куки
источник

E

Evgen in Scrapy
вам нужно ваши 5 пост запросов просто отправить подряд в одной сессии
источник

E

Evgen in Scrapy
просто в скрапи это будет работать по умолчанию
источник

E

Evgen in Scrapy
а в requests вам нужно каждый запрос отправлять через session.post
источник

DD

Danil Denysenko in Scrapy
о, так наоборот хорошо)
источник

DD

Danil Denysenko in Scrapy
Блин, спасибо Вам большое!!
источник

DD

Danil Denysenko in Scrapy
это вообще прекрасно что оно в скрапи работать будет по умолчанию. Сейчас попробую  в ручную через сессию погонять. Потом в скрапи закину.
источник

B

Bulatbulat48 in Scrapy
в скрапи у тебя идет первый вызов:
def start_requests(self):
yield scrapy.Request(u, callback=self.parse_httpbin, errback=self.errback_httpbin, dont_filter=False,)

потом в функции:
def parse_httpbin(self, response):
идет следующий вызов
yield scrapy.Request(u, callback=self.parse_page, errback=self.errback_httpbin,)
источник