• Scrapy 初体验

    • PyCharm中启动爬虫调试
    • XPath
  • 趣玩网
    • 创建工程
    • 首页html分析规律
    • 商品详情页分析及提取
    • 商品Item对象字段定义
    • DB 数据持久化
      • 页面表
      • 图片表
      • 商品信息表
    • 需要考虑扩展的部分
    • 问题点
    • 源码

Scrapy 初体验

  • scrapy startproject project_name 创建工程

  • scrapy genspider -t basic spider_name website.com 以basic模版创建爬虫

  • ROBOTSTXT_OBEY = False 不遵守Robots协议

  • Item 添加字段

  • 添加pipeline用于Item处理(输出到屏幕/数据/json)

  • 配置pipeline **dangdang.pipelines.DangdangPipeline': 300 **

  • 添加爬取逻辑 : def parse(self, response):

  • scrapy crawl spider_name —nolog 启动爬虫

PyCharm中启动爬虫调试

命令行执行 scrapy crawler spider启动爬虫,其实与下面指令是一样的:
python C:\Python34\Lib\site-packages\scrapy\cmdline.py crawl spider_name
的效果是一样的

这样只需要在pycharm中的Run下Edit Configurations...中做运行配置即可:
Script: C:\Python34\Lib\site-packages\scrapy\cmdline.py
Script parameters: crawl spider_name

XPath

/div[@attr='xxxx']  选择属性为xxxx的div标签
a/@title.extract() 输出a标签内的title属性值
a/text() 取标签文本print ("title : " + p.xpath('dl/dd/a/@title').extract())
print("link : " + p.xpath('dl/dd/a/@href').extract())
print("price : " + p.xpath('dl/dd/span/text()').extract())  取标签文本
print("logo : " + p.xpath('a/img[@onerror="imgerror(event)"]/@src').extract())
print("link : " + p.xpath('dl/dd/a/@href').extract())

趣玩网

创建工程

scrapy startproject quwan
scrapy genspider -t basic QuwanSpider quwan.com
ROBOTSTXT_OBEY = False

首页html分析规律

480x480大方块

    brick col2 masonry-brick 专题定位//div[@class=='brick col2 masonry-brick'] 专题定位/a/@href 专题详情页link (存在不完整连接)/a/img[@onerror="imgerror(event)"]/@src 专题头像link

235x235小方块

    brick col1 commodity bestlikes masonry-brick 商品定位//div[@class='brick col1 commodity bestlikes masonry-brick'] 商品定位/a/@href 商品详情页link (存在不完整连接)/a/@title 名称/a/img[@onerror="imgerror(event)"]/@src 商品头像link/dl/dd/a/@href  商品详情页link (存在不完整连接)/dl/dd/a/@title  名称/dl/dd/span.text() 价格

滚动交互区域
brick col1 userActive

一键回顶部
goTop_box

商品详情页分析及提取

缩略图特效区域
//a[@class="cloud-zoom"]/@href 缩略大图1
//a[@class="cloud-zoom"]/img/@src 缩略大图2
//ul[@class="pic_index"]/li[@class="pic_li"]/img/@src 缩略小图//div[@id="paykey_new"]//ul/li/dl/dt  品牌//div[@class="product_mess"] //商品信息
//div[@class="mess_box"] //商品信息
//div[@class="box details"]/p/img/@src  商品图片详情,多图组成
//div[@class="gn_decri"]/p/text()  商品介绍文本

商品Item对象字段定义

class QuwanItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()  goods_id = scrapy.Field()   #商品idpage_id = scrapy.Field()    #商品索引页logo = scrapy.Field()       #商品列表logoprice = scrapy.Field()title = scrapy.Field()brand = scrapy.Field()  #品牌pic_zoom_b1 = scrapy.Field() #缩略大图1pic_zoom_b2 = scrapy.Field() #缩略大图2pic_zoom_m = scrapy.Field()  #缩略小图pic_des  = scrapy.Field() #商品详情图goods_des = scrapy.Field() #商品文本简介params_name = scrapy.Field()    #参数params_val = scrapy.Field()

坑爹的item
item.goods_id = "xxxx" 不能这样访问
item['goods_id'] = "xxxx" 非得这样访问

yield item 返回item对象安装加工管道逐个处理item
ITEM_PIPELINES = {'quwan.pipelines.QuwanPipeline': 300,
}

DB 数据持久化

使用SQLAlchemy教程

页面表

页面id, 商品id

图片表

商品id, 图片顺序号, 图片链接, 图片类型(logo,缩放图,产品详情图)

商品信息表

商品id,价格、名称、参数、赞数量

需要考虑扩展的部分

  • 品牌
  • 好评指数
  • 库存&到货通知
  • 点赞喜欢
  • 放上自己的微信二维码
  • 分享链接可以考虑是否添加上

问题点

  • 首页--详情,产品ID如何匹配?
  • 数据库,手动建库还是对象映射,json?
  • 缩略图特效支持
  • Scrapy 如何多线程

源码

转载于:https://www.cnblogs.com/Jogging/p/qu-wan-wang-pa-chong-kai-fa-bi-ji.html

趣玩网 爬虫开发笔记相关推荐

  1. python 携程_python 携程爬虫开发笔记

    前言 最近购买了<Python3 爬虫.数据清洗与可视化实战>,刚好适逢暑假,就尝试从携程页面对广州的周边游产品进行爬虫数据捕捉. 因为才学Python不够一个星期,python的命名规范 ...

  2. java网络爬虫开发笔记

    步骤: 0. 从一个/多个起始页面开始 1. 检查网页是否已经被爬过(mysql + connector-j) 2. 拉取网页内容(jsoup) 3. 解析网页,寻找其中的<a>标签(js ...

  3. 仿趣玩网五屏带标题的jQuery幻灯效果 分享

    此代码参考网上修改的,上面要收费,我花了一小时整理修改的...还算节约了一瓶可乐钱... 下面附上代码和源码... 效果图 1.页面 <!DOCTYPE html PUBLIC '-//W3C/ ...

  4. 《崔庆才Python3网络爬虫开发实战教程》学习笔记(3):抓取猫眼电影榜单TOP100电影,并存入Excel表格

    本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,如果你也要这套视频教程的话,关注我公众号[小众技术],关注后回复[PYTHON],无套路免费送你一个学习大 ...

  5. Android开发笔记(一百零九)利用网盘实现云存储

    网盘存储 个人开发者往往没有自己的后台服务器,但同时又想获取app的运行信息,这就要借助于第三方的网络存储(也叫网盘.云盘.微盘等等).通过让app自动在网盘上存取文件,可以间接实现后台服务器的存储功 ...

  6. P2【商业级MMORPG大型网游】Unity全栈开发 笔记

    入门unity开发笔记 已报名,见评论.刚刚开始学习unity3d,今天我将开发我的第一个项目.一是项目的规划. 1. 游戏玩法是一种冒险玩法,类似于<马里奥>,但它是基于3D视角开发的. ...

  7. 《崔庆才Python3网络爬虫开发实战教程》学习笔记(5):将爬虫爬取到的数据存储到TXT,Word,Excel,Json等文件中

    本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,此套教程共5章,加起来共有34节课,内容非常详细丰富!如果你也要这套视频教程的话,关注我公众号[小众技术] ...

  8. python3网络爬虫开发实战pdf 崔庆才 百度网盘分享

    python3网络爬虫开发实战pdf 崔庆才 百度网盘分享 介绍了如何利用Python 3开发网络爬虫,环境配置和基础知识,然后讨论了urllib.requests.正则表达式.Beautiful S ...

  9. 《崔庆才Python3网络爬虫开发实战教程》学习笔记(4):解析库Xpath的使用方法总结

    本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,如果你也要这套视频教程的话,关注我公众号[小众技术],关注后回复[PYTHON],无套路免费送你一个学习大 ...

最新文章

  1. 使用Lucene分词
  2. stm32怎么加载字库_收藏 | STM32单片机超详细学习汇总资料(二)
  3. eclipse : java项目中的web.xml( Deployment Descriptor 部署描述文件 )配置说明
  4. 95-268-280-源码-Flink通信层的序列化与反序列化
  5. java hashtable 数据结构_java Hashtable底层原理是怎样的?数据结构包括什么?
  6. @RequestParam @RequestBody @PathVariable 等参数绑定
  7. IDEA 常用设置 与 常用操作(一)
  8. 锋利的jquery(认识jquery)
  9. 计算机技能大赛总结汇报大学,计算机专业技能大赛总结
  10. 手游沙巴克传奇当前服务器维护,《沙巴克传奇》12月18日安卓、IOS维护公告
  11. http域名跳转到https域名
  12. OPENGL OSG setNearFarRatio可以动态调节远近剪裁面
  13. 新版HyperMesh的Assemblies中调出下拉菜单查看Component(装配关系模型树)
  14. java面向对象高级特性 ---接口案例(学校中有教师和学生两类人,而在职研究生既是教师又是学生)
  15. lasso,lars算法详细推导过程-数学
  16. Druid基本概念及架构介绍
  17. MyBatis面试题1
  18. gcc -lm 是什么意思?
  19. 熵值法的信息熵值、效用值如何计算?
  20. 虎年屠虎:巨亏下的IPO,你也太虎了吧

热门文章

  1. homeassistant+broadlink
  2. oracle小机系统,【案例分享】Oracle系统参数过小导致数据库宕机
  3. 基于Vue.js的iView组件库table组件内render 里面 tab 里面的单选
  4. 【数据库02】==== 表的增删改查(基础)
  5. 史上最全搭建MAVEN私服上传并使用JAR包教程
  6. 幕客学习CSS3全面基础知识点
  7. dpdk实例flow_classify
  8. leaflet-自定义底图
  9. leaflet加载天地图影像、地形、矢量底图
  10. 半导体分立器件静态参数测试系统 DCT1401 天光测控