如何在scrapy中修改cookies
问题描述
爬取https://auto.ru/cars/all/?sor...,打开页面之后需要点击一个按钮,在点击按钮的时候,网站会设置cookies.但是在cookies中有一个字段不是通过set-cookies设置的,字段为'gdpr':'1'
完整字段为:
_csrf_token=020335a5dcb38cc95823931e5590aa1d6f8e0c8e5d1efbee; suid=77c527af480928e8842121176d182182.9bbd97c75bea15045fc7de2399bfbbea;
from=direct; autoru_sid=a%3Ag5c0a49f62a75ujsbkcumbspu4hpvpn0.f004ec1118196bd8749cc43268eafa85%7C1544178166087.604800.kZCWC5djG3zKbPIpqNyfVA.EuliNzEnolonmG71Ik1guRXEQZeqqojzIJQwZf1ZJ60; autoruuid=g5c0a49f62a75ujsbkcumbspu4hpvpn0.f004ec1118196bd8749cc43268eafa85;
gdpr=1;
from_lifetime=1544178179814;
X-Vertis-DC=sas
在requests请求中好解决
url = 'https://auto.ru/cars/all/?sort=fresh_relevance_1-desc&output_type=list&page=1'
header = {
"Connection":"keep-alive",
"Upgrade-Insecure-Requests":"1",
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Encoding":"gzip, deflate, br",
"Accept-Language":"zh-CN,zh;q=0.9",
}
requests_session = requests.session()
requests_session.cookies = requests.utils.cookiejar_from_dict({'gdpr':'1'})
但是使用scrapy如何解决这个问题呢?
scrapy中可以设置开启cookies
'COOKIES_ENABLED':True,
'COOKIES_DEBUG':True,
也可以在请求中传递cookies
yield scrapy.Request(url=task['task_url'],callback=self.handle_car_item_response,meta={'cookiejar':i})
这个请求传递到middware的CookiesMiddleware中,我该如何操作,才能把'gdpr':'1'这个字段附加到原cookies中呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论