Scrapy 初窥笔记

来源:互联网 发布:唯品会显示网络未连接 编辑:程序博客网 时间:2024/06/06 02:05
  1. scrapy startproject YourProjectName

    建立scrapy项目
  2. 开始爬虫

    scrapy crawl SpiderName

    开始执行爬虫

    以上仿麻烦
    根目录新建执行文件

    from scrapy.cmdline import executeexecute(['scrapy', 'crawl', 'dingdian'])

    顶点为spider的name

  3. 定义爬取的字段

    就比如说爬小说
    字段有 小说作者,小说内容等
    Item文件下定义

    class DingdianItem(scrapy.Item):    author = scrapy.Field()    content = scrapy.Field()

    如上,定义一定要继承Item
    然后字段皆为Field(), 没有其他类型
    比Django要方便的多

  4. 开始写核心spider部分

    spider以start_requests为初始函数,该函数必须yield一个可迭代对象
    比如Request(url, call_back, meta)
    参数说明url,即需要Request.get 的内容,call_back是一个parse函数,该函数可接受一个由刚才的get获取的response, meta是由上一个Request往这传的时候可以带上的参数

    parse 最终要yield 或 return 一个或多个 Item,来进行后续处理

    这里有个巨大的

    response尽量一次处理,不要在多个parse之间执行,因为所有的url,但凡被Request过,不会被二次请求,简单来说,url通常不能为response.url,如果你跟我一样踩到这个坑,注意这个解决方法

Scrapy的官方文档:
http://doc.scrapy.org/en/latest/topics/request-response.html#scrapy.http.Request
Request函数在文档中的定义:
class scrapy.http.Request(url[, callback, method=’GET’, headers, body, cookies, meta, encoding=’utf-8’, priority=0, dont_filter=False, errback])
在这儿, request的 dont_filter 设置为True就可以了

  1. Item被收集完成后,进入pipeline,
    这里就进行最后的处理了,可以将Item的内容提取出来,进行数据库等的存储
    模板:
class DingdianPipeline(object):    def process_item(self, item, spider):        # deferToThread(self._process_item, item, spider        if isinstance(item, DcontentItem):            url = item['chapterurl']            name_id = item['id_name']            num_id = item['num']            xs_chaptername = item['chaptername']            xs_content = item['chaptercontent']            Sql.insert_novel(name, content, name_id, num_id, url)            print('小说存储完毕')            return item

def process_item(self, item, spider):该方法必须重写,且return item此外,此函数通常功能即为去重后存储

以上为此次学习内容,差点一下午完成,踩坑踩两天

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 发票购买本遗失怎么办 销售方遗失发票怎么办 增值税发票发票联丢失怎么办 苹果购买发票丢失怎么办 空白增值税发票发票丢失怎么办 网购发票 领购簿怎么办 购物发票丢了怎么办 饭店客人买单要少钱怎么办 发票备注栏写错怎么办 卖房子发票丢失怎么办 发票二维码蓝票怎么办 车祸伤者出院怎么办 微信付款失败怎么办 增值税电子发票没打税号怎么办 买假出租车发票怎么办 纳税号错了怎么办 发票抬头写错怎么办 增值税发票打错顺序怎么办 发票打错了怎么办 电子发票错了怎么办 税率开高了怎么办 增值发票折叠了怎么办 播放器格式不对怎么办 发票弄上油了怎么办 快手视频快进了怎么办? 三星手机没声音怎么办 mp4不是标准格式怎么办 苹果七充电慢怎么办 迅捷转换器转换失败怎么办 爱奇艺摄像头拒绝扫描怎么办 电脑有些格式打不开怎么办 cdr转pdf打不开怎么办 pr cc2018很卡怎么办 职称转换后时间怎么办 文件更改或移动怎么办 太阳镜镜片花了怎么办 太阳镜镜片划了怎么办 键盘上的下横杠怎么办 小宝宝突然怕水怎么办 夏季半袖领口大怎么办 骑电动车怕上坡怎么办