学习scrapy第一天

主要写一些 操作流程+静态/动态网页的区别操作

关于scrapy新手上手的一些常用代码,也是操作流程

创建scrapy项目:scrapy startproject 项目名
创建spider:scrapy genspider 爬虫名
运行爬虫:scrapy crawl 爬虫名

分别写下scrapy项目中主要文件的写法及作用:

item.py:
构造item对象的字段的文件,item可看成字典(以下为了便于理解我称item为字典),其与字典非常相似,通过字段名=scrapy.Field()创建字段

spider.py:
在prase函数中写爬虫要执行的内容
这里动态页面和静态页面有以下区别:
静态页面:
对于静态页面,右击网页查看源代码时可直接看到自己想要爬取的数据,对于此类网页,我主要选用xpath定位来获取数据,xpath的获取可以依靠Chrome的xpath helper获得,再搭配for循环获取数据并存入到item字典中,此处要注意xpath获得的内容(对于文字)一般都需要再调用.extract方法转为utf-8编码,且xpath返回的内容永远是列表,再添加到item中时记得加列表的下标

动态页面:
查看网页源代码不能直接看到自己想要数据的页面,也可以通过查看response.body.decode()判断是动态页面还是静态页面,对于动态页面,不能通过xpath获得数据,正确步骤如下:通过开发者工具,选择network,筛选XHR,XHR下的文件的url才是真正的提取数据用的url,打开这个url可以发现是json类型的文件,然后再在spider.py中通过加载json文件(反序列化),再通过一层层键和字典的过滤,选中并获取所要元素添加到item字典中
全操作好后,通过yield item将item传给引擎,引擎通过判断是否为item类型数据,再将item传给pipelines.py处理

pipelines.py:
用于处理引擎传过来的item,这里的操作类似普通的将字典数据转为json或csv等一些文件的操作,不再赘述。

setting.py:
记得将pipelines的选项打开,robot的选项关闭,其他选项还未学到,不做记录
想要将数据保存到那个文件夹就进入那个文件夹运行爬虫,也可以在pipelines中的init函数中提前定义好

仅用于自己记录学习用,免得忘的太快,也可能有错,仅供参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值