爬取知名社区技术文章_items_2
item中定义获取的字段和原始数据进行处理并合法化数据
#!/usr/bin/python3
# -*- coding: utf-8 -*- import scrapy
import hashlib
import re
from scrapy.loader.processors import (MapCompose, TakeFirst, Join)
from scrapy.loader import ItemLoader def go_md5(value):
# 对cont_url进行md5,作为该表的主键
m = hashlib.md5()
if isinstance(value, str):
m.update(bytes(value, encoding='utf-8'))
# print(type(m.hexdigest()))
return m.hexdigest() def go_time(value):
# 获取时间,并且格式化时间,raw_t为原始数据,new_t为符合mysql中data类型数据
raw_t = value.strip()
if raw_t:
median_t = raw_t.replace('·', '')
if median_t:
time_l = median_t.split('/')
new_t = '-'.join(time_l)
return new_t.strip()
return median_t
else:
return raw_t def go_cont(value):
# 把文章内容中换行和空格去掉
return value.strip() def go_img(value):
# 确定图片下载器获取的是列表,下载器获取的图片url对象为列表形式
return value def get_num(value):
# 获取评论、点赞、收藏数
num = re.match(r'.*?(\d+).*?', value)
if num:
return int(num.group(1))
else:
return 0 class ArticleItemLoader(ItemLoader):
"""
自定义ItemLoader,要求取每个字段列表中第一个值
"""
default_output_processor = TakeFirst() class JobboleItem(scrapy.Item):
"""
input_processor 数据预处理
output_processor 数据返回item数据处理
""" cont_id = scrapy.Field(
input_processor=MapCompose(go_md5) )
cont_url = scrapy.Field() #
title = scrapy.Field()
publish_time = scrapy.Field(
input_processor=MapCompose(go_time)
)
cont = scrapy.Field(
input_processor=MapCompose(go_cont),
output_processor=Join('')
)
img_url = scrapy.Field(
output_processor=MapCompose(go_img)
)
link_num = scrapy.Field(
input_processor=MapCompose(get_num)
)
collection_num = scrapy.Field(
input_processor=MapCompose(get_num)
)
comment_num = scrapy.Field(
input_processor=MapCompose(get_num)
)
img_path = scrapy.Field() # 测试
if __name__ == '__main__':
result = get_num(' s ss 14 ssss')
print(result)
爬取知名社区技术文章_items_2的更多相关文章
- 爬取知名社区技术文章_setting_5
# -*- coding: utf-8 -*- # Scrapy settings for JobBole project # # For simplicity, this file contains ...
- 爬取知名社区技术文章_pipelines_4
获取字段的存储处理和获取普通的路径 #!/usr/bin/python3 # -*- coding: utf-8 -*- import pymysql import gevent import pym ...
- 爬取知名社区技术文章_article_3
爬虫主逻辑处理,获取字段,获取主url和子url #!/usr/bin/python3 # -*- coding: utf-8 -*- import scrapy from scrapy.http i ...
- 第4章 scrapy爬取知名技术文章网站(2)
4-8~9 编写spider爬取jobbole的所有文章 # -*- coding: utf-8 -*- import re import scrapy import datetime from sc ...
- 爬取博主所有文章并保存到本地(.txt版)--python3.6
闲话: 一位前辈告诉我大学期间要好好维护自己的博客,在博客园发布很好,但是自己最好也保留一个备份. 正好最近在学习python,刚刚从py2转到py3,还有点不是很习惯,正想着多练习,于是萌生了这个想 ...
- 爬虫实战——Scrapy爬取伯乐在线所有文章
Scrapy简单介绍及爬取伯乐在线所有文章 一.简说安装相关环境及依赖包 1.安装Python(2或3都行,我这里用的是3) 2.虚拟环境搭建: 依赖包:virtualenv,virtualenvwr ...
- Node爬取简书首页文章
Node爬取简书首页文章 博主刚学node,打算写个爬虫练练手,这次的爬虫目标是简书的首页文章 流程分析 使用superagent发送http请求到服务端,获取HTML文本 用cheerio解析获得的 ...
- 使用Python爬取微信公众号文章并保存为PDF文件(解决图片不显示的问题)
前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...
- Python3.6+Scrapy爬取知名技术文章网站
爬取分析 伯乐在线已经提供了所有文章的接口,还有下一页的接口,所有我们可以直接爬取一页,再翻页爬. 环境搭建 Windows下安装Python: http://www.cnblogs.com/0bug ...
随机推荐
- php 使用beanstalk 消息队列
Beanstalkd 消息队列 一.基本信息Beanstalkd,一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有 ...
- SQL Server-聚焦WHERE Column=@Param OR @Param IS NULL有问题?
前言 上一篇我们讲完SQL动态查询,本节我们继续来讲解SQL动态查询中存在的问题. SQL动态查询条件筛选过滤 当我们创建存储过程调用存储过程时,若筛选条件有值则过滤,没有值则返回所行记录,类似如下查 ...
- SGML/HTML/XML之间的关系
1 历史起源 SGML--1986年国际标准化组织出版发布了一个信息管理方面的国际标准(ISO 8879:1986信息处理). HTML 2.0--1995年11月作为RFC 1866发布 XML 1 ...
- ComboBox 中 DisplayMember 和 ValueMember 都是具体干什么的?
ComboBox组件的数据绑定,在得到数据集后,只有设定好ComboBox组件的的三个属性就可以完成数据绑定了,这三个属性是:"DisplayMember". "Valu ...
- Zabbix Agent for Windows部署(五)
一.环境介绍 二.软件准备 1.Zabbix官方下载地址:https://www.zabbix.com/download进入Zabbix pre-compiled agents项,下载相应版本 2.将 ...
- 支付宝pc网页支付
本文讲解如何在pc网页上完成支付宝的支付功能, 详细讲解了支付宝的配置信息,项目如何使用配置信息等, 本项目中代码可以直接运行, 也可以将代码迁移至你自己的项目中直接使用. 注意: 下面讲解的功能只能 ...
- Codeforces #452 Div2 F
#452 Div2 F 题意 给出一个字符串, m 次操作,每次删除区间 \([l,r]\) 之间的字符 \(c\) ,输出最后得到的字符串. 分析 通过树状数组和二分,我们可以把给定的区间对应到在起 ...
- 【转】JavaWeb编码之get方式中文乱码问题
一.现象描述 以get方式提交含中文表单,后台接收为乱码: <form action="admin/User/searchUser.do" method="get& ...
- BZOJ:4825: [Hnoi2017]单旋
Description H 国是一个热爱写代码的国家,那里的人们很小去学校学习写各种各样的数据结构.伸展树(splay)是一种数据结构,因为代码好写,功能多,效率高,掌握这种数据结构成为了 H 国的必 ...
- hihoCoder #1094 : Lost in the City(枚举,微软苏州校招笔试 12月27日 )
#1094 : Lost in the City 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi gets lost in the city. He ...