有一次爬医书的时候有一个函数不会被执行,找了半天没有找到问题所在,只知道是上一个scrapy.Request
执行完并没有正确的触发接下来的函数,根据查找的信息应该是由于scrapy自带的去重机制将我的请求给抛弃了。
lxml相关操作
scrapy作为爬虫框架还是比较全能的,但是我之前遇到过一个问题就是要将一个节点的某些子节点删除,这个操作好像scrapy的selector好像不能实现,也有可能是我自己没找到方法。我的解决方法是直接将response的内容构建成lxml然后再进行节点删除和信息提取。
Ubuntu安装MySQL
服务器安装MySQL有些方法搞的十分麻烦,这里记录一个Ubuntu适用的简单的方法,同时修改字符集为utf8mb4(毕竟MySQL的utf8是个赝品)
将flask部署到Ubuntu服务器上
我们做的项目最终都是要跑在服务器上的,我们不可能在服务器上一直跑着我们的Flask程序,而且程序也可能因为某些错误而挂掉,我们需要保证它的可用性,这篇文章就是我根据别人的Flask部署教程总结出来的东西还有几个特别需要注意的小坑。
创建python虚拟环境
如果在一台电脑上,想开发多个不同的项目, 需要用到同一个包的不同版本, 如果不使用虚拟环境, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了。
基于redis使用scrapy下载中间件实现简单的增量爬虫
在爬虫中有一种很重要的操作就是增量爬取,scrapy自带的管道中的去重只能实现该次爬取链接的去重,并不能实现对过往爬取数据的去重,所以选择使用redis来实现增量爬取,这也是大家现在使用较多的方法