9.5 Scrapy项目管道爬取58实战代码

spider文件:
yield函数 ,这个函数没有结束,还可以继续返回,这里千万不能return,return就结束了1条数据。
这才yield出去到管道,才管道开始了。
yield item是yield到管道,yield request是yield到调度器。
管道文件pipline.py文件
天生有一个管道,但是这个管道里面什么都没有。之前讲过管道有4个函数。
首先打开一个文件,print(打开文件了)关闭一个,print(关闭文件了),中间是管道

问题来了如何写入文件:
如何把一个个对象写入文件。涉及到序列化,即把对象变成一个文本。如何把dictionary写入到文本中呢?经典方案是import jaon,把它变成一个json的字符串,然后存起来就ok了。
即:序列号函数json.dumps(),item其实就是一个dictionaty,但是离真正还是差一点。
于是json.dumps(dic(item)让其变成真正的dic,并把其放入line变量中,即line=json.dumps(dic(item)。

这其中有个问题,容易写成一坨,就是你不断地这么写只是在尾部追加,没有换行符,
这时候我们要添加一个换行的机制,并把其format粘贴进来
然后再写到文件里面


激活管道,在setting文件中
解封即把红框的注释去掉,注意改变管道的顺序补上改前边的文件名,而是改动后边的数字300

让其执行奔跑
手动创建main文件,并且把执行命令写进去,其中有个是文件名,然后debug运行即可。


课后作业:
  • 选4种选择器中的一种对其高级语法学习
  • 学习和掌握正则表达式的用法
  • 尝试使用高级语法解析一些页面
补充资料:
介绍了四种选择器,其中正则表达式是必须学习的,其它三种只需挑一种自己喜欢的进行学习并且精通就好。注意一定要通过实际的网站多加练习如何提取到自己想要的数据
  • CSS、Xpath和正则表达式:可以前往选择器(Selectors),学习更加全面的选择器用法
  • 正则表达式:正则表达式是程序猿的必备技能,不仅在scrapy中可以用到,清洗数据、SQL数据库提取数据等都可以用到,所以一定要多加学习:正则表达式
  • 谷歌浏览器具有一款拓展插件叫“XPath Helper”,可以在浏览器页面直接写Xpath query,即时显示所写的Xpath选择到的结果,非常好用,可以自行下载

XPath Helper下载: https://pan.baidu.com/s/1c2vYUOw
提取码 mtut
下载好,打开chrome://extensions/
然后把插件拖进去,重启下浏览器就可以用了,快捷打开插件方式shift+ctrl+X
补充资料
  • 有能力的同学可以去GitHub浏览Scrapy的源码,更深入地理解Scrapy的使用和操作方法
  • 有兴趣的同学可以尝试去爬取京东的商品,这里有一个京东爬虫开源的项目,大家可以参考一下
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值