scrapy框架简介

  • Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛
  • 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便

scrapy架构图

  • crapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
  • Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。
  • Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理,
  • Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器),
  • Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方.
  • Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件。
  • Spider Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)

正文开始

我们知道,有的网页必须要登录才能访问其内容。scrapy登录的实现一般就三种方式。

1.在第一次请求中直接携带用户名和密码。

2.必须要访问一次目标地址,服务器返回一些参数,例如验证码,一些特定的加密字符串等,自己通过相应手段分析与提取,第二次请求时带上这些参数即可。可以参考 https://www.cnblogs.com/bertwu/p/13210539.html

3.不必花里胡哨,直接手动登录成功,然后提取出cookie,加入到访问头中即可。

本文以第三种为例,实现scrapy携带cookie访问购物车。

1.先手动登录自己的淘宝账号,从中提取出cookie,如下图中所示。

2.cmd中workon自己的虚拟环境,创建项目 (scrapy startproject taobao)

3.pycharm打开项目目录 ,在terminal中输入(scrapy genspider itaobao taobao.com),得到如下的目录结构

4.setting中设置相应配置

5. 在itaobao中写业务代码。我们先不加人cookie直接访问购物车,代码如下:

import scrapyclass ItaobaoSpider(scrapy.Spider):name = 'itaobao'allowed_domains = ['taobao.com']start_urls = ['https://cart.taobao.com/cart.htm?spm=a1z02.1.a2109.d1000367.OOeipq&nekot=1470211439694'] # 第一次就直接访问购物车def parse(self, response):print(response.text)

响应回来信息如下

明显是跳转到登录页面的意思。

6.言归正传,正确的代码如下,需要重写 start_requests() 方法,此方法可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里的请求。

import scrapyclass ItaobaoSpider(scrapy.Spider):name = 'itaobao'allowed_domains = ['taobao.com']# start_urls = ['https://cart.taobao.com/cart.htm?spm=a1z02.1.a2109.d1000367.OOeipq&nekot=1470211439694']# 需要重写start_requests方法def start_requests(self):url = "https://cart.taobao.com/cart.htm?spm=a1z02.1.a2109.d1000367.OOeipq&nekot=1470211439694"# 此处的cookie为手动登录后从浏览器粘贴下来的值cookie = "thw=cn; cookie2=16b0fe13709f2a71dc06ab1f15dcc97b; _tb_token_=fe3431e5fe755;" \" _samesite_flag_=true; ubn=p; ucn=center; t=538b39347231f03177d588275aba0e2f;" \" tk_trace=oTRxOWSBNwn9dPyorMJE%2FoPdY8zfvmw%2Fq5hoqmmiKd74AJ%2Bt%2FNCZ%" \"2FSIX9GYWSRq4bvicaWHhDMtcR6rWsf0P6XW5ZT%2FgUec9VF0Ei7JzUpsghuwA4cBMNO9EHkGK53r%" \"2Bb%2BiCEx98Frg5tzE52811c%2BnDmTNlzc2ZBkbOpdYbzZUDLaBYyN9rEdp9BVnFGP1qVAAtbsnj35zfBVfe09E%" \"2BvRfUU823q7j4IVyan1lagxILINo%2F%2FZK6omHvvHqA4cu2IaVAhy5MzzodyJhmXmOpBiz9Pg%3D%3D; " \"cna=5c3zFvLEEkkCAW8SYSQ2GkGo; sgcookie=E3EkJ6LRpL%2FFRZIBoXfnf; unb=578051633; " \"uc3=id2=Vvl%2F7ZJ%2BJYNu&nk2=r7kpR6Vbl9KdZe14&lg2=URm48syIIVrSKA%3D%3D&vt3=F8dBxGJsy36E3EwQ%2BuQ%3D;" \" csg=c99a3c3d; lgc=%5Cu5929%5Cu4ED9%5Cu8349%5Cu5929%5Cu4ED9%5Cu8349; cookie17=Vvl%2F7ZJ%2BJYNu;" \" dnk=%5Cu5929%5Cu4ED9%5Cu8349%5Cu5929%5Cu4ED9%5Cu8349; skt=4257a8fa00b349a7; existShop=MTU5MzQ0MDI0MQ%3D%3D;" \" uc4=nk4=0%40rVtT67i5o9%2Bt%2BQFc65xFQrUP0rGVA%2Fs%3D&id4=0%40VH93OXG6vzHVZgTpjCrALOFhU4I%3D;" \" tracknick=%5Cu5929%5Cu4ED9%5Cu8349%5Cu5929%5Cu4ED9%5Cu8349; _cc_=W5iHLLyFfA%3D%3D; " \"_l_g_=Ug%3D%3D; sg=%E8%8D%893d; _nk_=%5Cu5929%5Cu4ED9%5Cu8349%5Cu5929%5Cu4ED9%5Cu8349;" \" cookie1=VAmiexC8JqC30wy9Q29G2%2FMPHkz4fpVNRQwNz77cpe8%3D; tfstk=cddPBI0-Kbhyfq5IB_1FRmwX4zaRClfA" \"_qSREdGTI7eLP5PGXU5c-kQm2zd2HGhcE; mt=ci=8_1; v=0; uc1=cookie21=VFC%2FuZ9ainBZ&cookie15=VFC%2FuZ9ayeYq2g%3D%3D&cookie" \"16=WqG3DMC9UpAPBHGz5QBErFxlCA%3D%3D&existShop=false&pas=0&cookie14=UoTV75eLMpKbpQ%3D%3D&cart_m=0;" \" _m_h5_tk=cbe3780ec220a82fe10e066b8184d23f_1593451560729; _m_h5_tk_enc=c332ce89f09d49c68e13db9d906c8fa3; " \"l=eBxAcQbPQHureJEzBO5aourza7796IRb8sPzaNbMiInca6MC1hQ0PNQD5j-MRdtjgtChRe-PWBuvjdeBWN4dbNRMPhXJ_n0xnxvO.; " \"isg=BJ2drKVLn8Ww-Ht9N195VKUWrHmXutEMHpgqKF9iKfRAFrxIJAhD3DbMRAoQ1unE"cookies = {}# 提取键值对 请求头中携带cookie必须是一个字典,所以要把原生的cookie字符串转换成cookie字典for cookie in cookie.split(';'):key, value = cookie.split("=", 1)cookies[key] = valueyield scrapy.Request(url=url, cookies=cookies, callback=self.parse)def parse(self, response):print(response.text)

响应信息如下(部分片段):

很明显这是自己购物车的真实源代码。

好了,大功告成啦,接下来就可以按照业务需求用xpath(自己喜欢用这种方式)提取自己想要的信息了。

总结

到此这篇关于scrapy框架携带cookie访问淘宝购物车的文章就介绍到这了,更多相关scrapy框架cookie内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

源码获取私信小编01获取

scrapy框架携带cookie访问淘宝购物车功能的实现代码!相关推荐

  1. 2020用vue实现仿美团导航切换功能和淘宝购物车功能,实现默认第一个导航显示效果?

    总结:之前一直未写过同时实现跳转当前页面和跳转新页面的项目,要么是当前,要么是新页面,今天更新一个两个同时实现的项目. :相信很多人都遇到过router-link通过to跳转页面有时候会不显示内容的b ...

  2. 简要模仿淘宝购物车功能

    一主要功能: 实现通过点击.拖动添加购物车,购物金额自动结算,以及删减物品的功能. 有待改进之处:还未实现在购物车内实现+1,-1功能. 二.效果图 三.相关代码 1,HTML+JS <!DOC ...

  3. 淘宝购物车功能的实现

    json串 shop.json { "code" : 200 , "orderData" : [ { "shopId": 1, " ...

  4. 高仿淘宝购物车分分钟让你集成

    前言 做商城类电商app购物车确实一直是一个难点,为什么难呢? 主要原因呢是他里面的逻辑复杂,然后 百度的资源好像都不太理想,好多就是一个简单的listView来实现根本就达不到开发的需求.然后 一般 ...

  5. 面试高频问题——“淘宝购物车”怎么测试

    面试高频问题--"淘宝购物车"怎么测试 测试思维 依然附上测试任何事物的测试思路: 第一步:梳理产品的核心业务流程:明白这是个什么项目,实现了什么业务,以及是怎么实现的? 这个步骤 ...

  6. 你能说说“淘宝购物车”怎么测试么?

    前言 之前我有整理过一系列文章"支付功能如何测试?","抖音直播要如何测试","微信红包如何测试",很多学生说是及时雨,帮助了他们的测试面试 ...

  7. 使用python+selenium清空淘宝购物车

    selenium 概述 思路分析 1. 登录淘宝网 2. 输入用户名和密码 3. 访问购物车 4. 提交订单并确认支付 完整代码 概述 每当双十一等购物节到来的时候,我们经常需要熬夜到凌晨来对心仪的商 ...

  8. 淘宝购物车的测试点有什么?

    1.界面测试 打开淘宝购物车页面后,页面的布局是否合理,是否完整. 不同卖家的商品在不同的table区域显示,区分明显. 页面的功能按钮可以正常显示. 商品的最下方显示失效宝贝. 页面的最低端显示&q ...

  9. 互联网晚报 | 10月28日 星期四 | 农夫山泉钟睒睒首次成为中国首富;淘宝购物车分享功能上线;段永平否认牵头OV联合造车...

    ‍ ‍今日看点 ✦ 荣耀打响重回海外第一枪:多国市场发布荣耀50系列 ✦ 段永平否认牵头OPPO.vivo联合造车,称绝不会"重出江湖" ✦ 淘宝购物车分享功能正式上线,可以分享至 ...

  10. 软件测试如何测试淘宝购物车

    首先思考一下这个购物车实现了什么样的功能:以下图为例 分析测试点过程: 1.首先要梳理产品的核心业务流程,也就是明白这是个什么项目,实现了什么业务,以及是怎么实现的.这个步骤一般会参考公司的需求文档, ...

最新文章

  1. linux版魔兽服务端,linux下玩warcraft III(魔兽)
  2. 物理学需要哲学,哲学需要物理学
  3. [转]建一个XMLHttpRequest对象池
  4. 请选择JAVA中有效的标识_Java中有效的标识符是什么?
  5. s.assign()用法c++_assign是什么意思
  6. 难过的要命。。。。。。
  7. 与机器学习算法有关的数据结构
  8. python去掉数字列表中括号_如何从列表中的元素中移除括号(Python)
  9. 无监督和有监督的区别_机器学习和人工智能之间的区别
  10. 苹果iOS开发深入浅出Cocoa之类与对象
  11. 【预测模型】基于天牛须算法优化ELman神经网络实现数据预测matlab代码
  12. 变频器按启动没反应_变频器按运行键电动机不转故障怎样维修
  13. 扩展卡尔曼滤波算法 EKF
  14. 如何快速搭建一个直播平台?
  15. c语言实验室设备信息管理系统,C语言课程设计实验室设备信息管理系统.doc
  16. JS:Falsy Bouncer(过滤数组假值)
  17. c语言数组文曲星猜数游戏编程,第7章 数组-8数组的其他应用——文曲星猜数游戏.pdf...
  18. World中利用宏命令批量删除页眉和页脚(亲测好用!)
  19. android p 华为p10,华为p10p使用十天感受
  20. centos 7修改用户名和密码

热门文章

  1. Aras Innovator 完整安装详细教程
  2. 如何通过调整,附加组件和移动应用程序来增强您的SABnzbd体验
  3. 北邮bbs爬取阶段性总结
  4. CentOS7修改Locale为zh_CN.UTF-8
  5. progress进度条滚动动画
  6. HTML表示RGB颜色的方法
  7. 英特尔服务器芯片组路线图,英特尔处理器路线图:14nm用到2021年 7nm再等3年
  8. yarn中资源调度fair schedule详解
  9. 国内外程序化交易软件简介
  10. 网络管理-Pageadmin CMS构建企业网站的方法