作为一个CV工程师(Ctrl+C,Ctrl+V),面向百度谷歌github编程是基本素养了。
就算不懂化妆品,互联网会告诉我们一切
那就面向百度看下,护肤品什么比较好
ok,找到了一个可以用的网站,我们稍微点进去看下里面的数据
随便一搜我们就能看到各种各样的美妆用品的成分作用和安心度之类的数据
到这一步,相信大家应该就都会做了,数据嘛,嘿嘿
因为这里做了页面显示数量限制,所以我并没有拿到全部的数据,不过简单的几百条就足够用了
先通过搜索,把每个页面里面的指向各个产品的成分的url给整出来
#coding=utf-8
from urllib import request
import re
#1.搜索API
URL = 'http://www.cosdna.com/chs/product.php?q=%E8%BA%AB%E4%BD%93%E4%B9%B3&sort=featured&p='
def geturl(URL):
UA = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'}
URL = request.Request(URL,headers=UA)
A = request.urlopen(URL,timeout = 5)
B = A.read().decode('utf-8')
C = re.split(r'<table class="table table-hover">|</table>',B)
D = re.split(r'<td class="px-0">|<td class="pl-0">|</td>|<td class="text-muted text-nowrap">',C[1])
data = ''
for d in D:
E = re.split(r'<a href=|<span|</tr>|</a>|>|<td|<tr',d)
for e in E :
if e != '' and '<div' not in e and '</div' not in e and 'title=' not in e:
data = data + e.strip() +'\n'
return data
data = ''
for i in range(1,13):
urli = URL + str(i)
data = data + geturl(urli)
print(data)
f = open('urldata.txt', 'w',encoding='utf-8')
f.write(str(data))
f.close()
简单整理下获取到的url数据,
这里因为懒得写代码,直接用@分隔开数据
import re
f = open('urldata.txt', 'r',encoding='utf-8')
A = f.read()
f.close()
B = re.split('\n|"',A)
data = ''
for a in range(0,len(B)):
if B[a] !='' and B[a] !=' ' and '.jpg' not in B[a]:
if 'html' in B[a] and 'html' not in B[a+1]:
B[a] = 'http://www.cosdna.com'+B[a]
data = data + B[a]+'@'+B[a+2]+'@'+B[a+4]+'\n'
f = open('urldata2.txt', 'w',encoding='utf-8')
f.write(str(data))
f.close()
然后到excel里面用数据分列功能直接拆开就行
最后这样:
分列之后名字放一列,链接放一列,复制到txt里面,当然,如果你的文件没被加密系统加密的话,直接读excel也影响不大准备一个用来获取成分数据的函数
#coding=utf-8
from urllib import request
import re
#1.搜索API
URL = 'http://www.cosdna.com/chs/cosmetic_b2ff463399.html'
def readurl(name,URL):
UA = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'}
URL = request.Request(URL,headers=UA)
A = request.urlopen(URL,timeout = 100)
B = A.read().decode('utf-8')
C = re.split(r'<tbody class="chem-list">|</tbody>',B)
D = re.split(r'<',C[1])
data = ''
for d in D:
if 'class="small text-muted ml-2 mt-2px"' in d:
data = data +'\n' +name+'\t'+ d.replace('\n','').split('>')[-1].strip() +'\t'
elif 'class="small-85 text-vampire align-middle"' in d or 'a href=' in d or 'title="安心度"' in d:
data = data +d.replace('\n','').replace(" ", '').split('>')[-1].strip() +'\t'
return data
然后再遍历通过这个函数获取所有链接的数据
import re
from read import readurl
f = open(r'身体乳/url.txt', 'r',encoding='utf-8')
A = f.readlines()
f.close()
Data = {}
for a in A:
b = re.split('\t',a)
Data[b[0]]=b[1].replace('\n','')
Datas = ''
for a,b in Data.items():
Datas = Datas + readurl(a,b) +'\n'
f = open('身体乳成分.xls', 'w',encoding='utf-8')
f.write(str(Datas))
f.close()
这样下来,我们就可以得到一份关于近百款相同性质产品的成分说明
根据网站数据的格式稍微整理一下,再提取下关键词记录出现频次
当然这个全部直接用python实现也是可以的,就是界面没有这么直观
最后经过简单的汇总,到这里你知道该选什么来送礼了吗?