scrapy京东商品爬虫:哪一种卷筒纸值得买
经过数据的清洗,终于得出一个结论:市面上销售的卷筒纸(有芯),按斤算,都在6块钱/斤以上。贵的大概在12块钱/斤。现在大概说下数据清洗的流程。
mysql导出csv
import mysql.connector
import csv
mydb = mysql.connector.connect(
host="localhost",
user="hhq",
passwd="123456",
database="jing_dong"
)
my_control = mydb.cursor()
sql = "SELECT * FROM juan_tong_zhi"
my_control.execute(sql)
re = my_control.fetchall()
with open("juantongzhi.csv", "w", newline="") as fp:
file_input = csv.writer(fp)
for r in re:
file_input.writerow(r)
导出所有数据后,有个问题,我只能在标题处提取到具体的重量是多少克/卷,一包/箱多少卷的数量。一开始想通过wps函数进行正则,发现wps支持的比较少。于是只能通过python读取之后,进行正则匹配。比如标题如下的:
清风(APP)卷纸 有芯 原木金装 4层加厚140克卫生纸巾27卷家庭装(母婴可用 可冲水整箱销售) |
---|
斑布(BABO) 本色卫生纸 无漂白竹浆 BASE系列3层200g有芯卷纸*27卷 |
得宝(Tempo) 卷纸 4层160g16卷 有芯卷筒纸卫生纸巾 天然无香(整箱销售)-柔韧升级 |
得宝(Tempo) 卷纸 4层160g10卷 有芯卷筒卫生纸纸巾 樱花香味 |
得宝(Tempo) 卷纸 4层135g24卷 有芯卷筒纸巾 天然无香(整箱销售) |
幸福阳光 卷纸 太阳花系列 有芯卷纸 卷筒卫生纸 4层130克*27卷 |
得宝(Tempo) 卷纸 4层160g16卷 有芯卷筒纸卫生纸巾 天然无香(整箱销售)-柔韧升级 |
得宝(Tempo) 卷纸 4层160g16卷 有芯卷筒纸卫生纸巾 天然无香(整箱销售)-柔韧升级 |
纸护士 卷纸 竹浆本色纸 有芯卫生纸厕纸4层140g*24卷 整箱销售 竹纤维不漂白 |
洁云卷纸 4D溶4层冲水速溶160g卫生纸10卷装 有芯卷筒纸(立体压花) |
洁云(Hygienix)4层卷纸 绒触感180克卫生纸10卷 有芯卷筒纸 |
得宝(Tempo) 卷纸 4层160g10卷 有芯卷筒卫生纸纸巾 天然无香-柔韧升级 |
得宝(Tempo) 卷纸 4层160g10卷 有芯卷筒纸巾 樱花香味 |
得宝(Tempo) 卷纸 4层135g24卷 有芯卷筒纸巾 天然无香(整箱销售) |
洁柔(C&S) 洁柔卷纸厕纸妇婴家用卫生纸卷筒纸有芯卷纸4层140g27卷整箱批发 |
需要提取行的关键数字,卷的数量。于是进行下面代码。
import re
import csv
result_list = []
pattern = "[1-9]\d*[克/G/g]"
pattern2 = '[1-9]\d*卷'
with open('juantongzhi.csv', 'r', newline="") as fp:
data = csv.reader(fp)
for da in data:
obj = re.search(pattern2, ''.join(da))
if obj:#如果查找到则输出
print(obj.group())
else:#没有匹配一样需要输出
print('not')
因为有的标题是没有查找到匹配的数据,好在数据量不大,手动把数据复制粘贴回juantongzhi.csv。最终再进一步筛选之后终于取得效果。
各位想要数据的,请私信练习,目前得出的结论是。
风(APP)卷纸 有芯 原木金装 4层加厚140克卫生纸巾27卷家庭装(母婴可用 可冲水整箱销售)49.9元
这个产品大概相当于6.6元/斤,而且评价最多,应该是最值得购买。