爬虫实战01——数据预处理(mysql)
除了利用pandas模块进行数据处理, 还可以利用mysql进行处理
将爬虫下来的数据导入mysql,并进行数据处理:
DROP TABLE if exists a.*;
CREATE TABLE a.* # 新建数据表
(
SELECT
DISTINCT hou_code ,
#f1+1 id,
infotitle 标题,
alt 地标_1,
position_xiaoqu 地标_2,
positionIcon_region 地标_3,
SUBSTRING_INDEX(SUBSTRING_INDEX(unitPrice,'元/平米',1),'单价',-1) '单价(元/平米)',
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(positionIcon_new,'|',3),'|',-1),'平米',1) 面积m²,
price_total_new '总价(万元)',
SUBSTRING_INDEX(SUBSTRING_INDEX(positionIcon_new,'|',2),'|',-1) 户型,
SUBSTRING_INDEX(SUBSTRING_INDEX(positionIcon_new,'|',4),'|',-1) 朝向,
SUBSTRING_INDEX(SUBSTRING_INDEX(positionIcon_new,'|',5),'|',-1) 装修类型,
SUBSTRING_INDEX(SUBSTRING_INDEX(positionIcon_new,'|',6),'|',-1) 有无电梯,
SUBSTRING_INDEX(positionInfo_new,' -',1) 建板时间,
SUBSTRING_INDEX(SUBSTRING_INDEX(starIcon,'/',1),'人关注',1) 关注人数,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(starIcon,'/',2),'/',-1),'次带看',1),'共',-1) 带看次数,
SUBSTRING_INDEX(SUBSTRING_INDEX(starIcon,'/',3),'/',-1) 发布时间
FROM a_1.* #原数据表
where positionIcon_new not REGEXP '联排别墅|独栋别墅| 暂无数据别墅|叠拼别墅|双拼别墅'
ORDER BY alt
)
UNION
(
SELECT
DISTINCT hou_code ,
#f1+1 id,
infotitle 标题,
alt 地标_1,
position_xiaoqu 地标_2,
positionIcon_region 地标_3,
SUBSTRING_INDEX(SUBSTRING_INDEX(unitPrice,'元/平米',1),'单价',-1) '单价(元/平米)',
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(positionIcon_new,'|',4),'|',-1) ,'平米',1) 面积m²,
price_total_new '总价(万元)',
SUBSTRING_INDEX(positionIcon_new,'|',3) 户型,
SUBSTRING_INDEX(SUBSTRING_INDEX(positionIcon_new,'|',5),'|',-1) 朝向,
SUBSTRING_INDEX(SUBSTRING_INDEX(positionIcon_new,'|',6),'|',-1) 装修类型,
SUBSTRING_INDEX(positionIcon_new,'|',-1) 有无电梯,
SUBSTRING_INDEX(positionInfo_new,' -',1) 建板时间,
SUBSTRING_INDEX(SUBSTRING_INDEX(starIcon,'/',1),'人关注',1) 关注人数,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(starIcon,'/',2),'/',-1),'次带看',1),'共',-1) 带看次数,
SUBSTRING_INDEX(SUBSTRING_INDEX(starIcon,'/',3),'/',-1) 发布时间
FROM a_1.* #原数据表
where positionIcon_new REGEXP '联排别墅|独栋别墅| 暂无数据别墅|叠拼别墅|双拼别墅'
ORDER BY alt
)
python的pymysql模块可以连接mysql,这里我用的是本地进行数据处理的,所以host=None
import pymysql
# 数据库对应地址及用户名密码,指定格式,解决输出中文乱码问题
conn = pymysql.connect(host=None, port=3306,
user='root', passwd='wx123456', db='testwuxian',
charset='utf8')
# cursor获得python执行Mysql命令的方法,也就是操作游标
#使用cursor()方法创建一个游标对象
cur = conn.cursor()
v_sql = "sql语句"
#使用execute()方法执行SQL语句
cur.execute(v_sql)
#使用fetall()获取全部数据
data = cur.fetchall()
#打印获取到的数据
print(data[0])
#关闭游标和数据库的连接
cur.close()
conn.close()
链家二手房房源的爬虫链接如下:
爬虫实战01——利用python爬虫并进行数据分析(链家 爬虫): https://mp.youkuaiyun.com/mdeditor/93904502#