python爬虫笔记----爬取中国传统色谱网的色号

网站:http://zhongguose.com/


目标:爬取所有颜色和颜色的十六进制码

网站简介:记录最具有代表性的中国传统颜色及颜色的十六进制码,方便p图取色参考,里面的颜色都是最具代表的中国色。


首次看一下网站的源码,发现源码里面没有首页的样式,首页里面每一个色块的样式文件里都有记录颜色的名称和十六进制码,而在代码里是通过js方式呈现的,并不是一个纯静态页面,所以,使用常规的resquest爬虫是无法爬取我们想要的信息的。



爬虫工具:selenium、PhantomJS、BeautifulSoup

简介:使用selenium这个工具是因为它可以爬取我们肉眼可见的页面信息,作为静态页面爬取下来。同时它还是一个自动化测试工具,本次爬取不涉及,有兴趣的同学自行百度。

使用selenium需要PhantomJS工具的支持,具体下载使用请参考https://blog.csdn.net/qq_37245397/article/details/81543450

selenium的用法:

下载Phantomjs

Phantomjs路径加入path中

windows:再环境变的path变量加入Phantomjs的安装位置

linux:

nano ~/.bash_profile

##将Phantomjs路径加入path中

export PATH=/Your/Path/to/Phantomjs/bin:$PATH

##保存退出

##生效

source ~/.bash_profile


爬虫过程

使用Phantomjs的webdriver,将页面获取回来,再使用beatuifulsoup库解析,可以得到我们想要的页面内容;

发现这些颜色名称和十六进制码都是规律地写在一个span标签里面,颜色名地标签class值是name里面的style属性里就包含了rgb码;

ima

所以我们只要获取所有class值为name的span标签,获取标签内容,和标签的style属性值,使用split分割出我们想要的部分rgb码就可以了;


将获取到的数据存到字典里,需要下一步的操作时,直接从字典中提取出来即可。

代码如下:

from selenium import webdriver

from bs4 import BeautifulSoup

url = "http://zhongguose.com/"

driver = webdriver.PhantomJS()

driver.get(url)

html = driver.execute_script('return document.documentElement.outerHTML')

soup = BeautifulSoup(html,"html.parser")

colorlist = {}

#循环读取所有span标签

for i in soup.find_all("span",class_="name"):

    name = i.string

    #提取spna的style值,里面包含颜色的十六进制码

    rgb = str(i.get('style')).split(": ")[1]

    #将颜色名称和颜色十六进制颜色代码值以字典的形式写进字典,返回字典列表

    colorlist[name] = rgb

print(colorlist)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 7,295评论 0 17
  • 《后来的我们》上映了,或许大家有点小期待吧。毕竟,影片的主题曲《我们》,早就虐哭了不少人。电影能否跟歌曲一样深入人...
    派派森森阅读 1,284评论 0 0
  • 导语:我们咨询行业的人,对于面谈是再熟悉不过了。尤其是像我这种做管理咨询的,在很多人看来,主要工作就是面谈。面谈,...
    路叔叔阅读 486评论 0 1
  • 真正聪明的人,遇小事不忙,遇大事不慌,遇烦事不燥,遇乱事不惊。 智慧是聪明的天敌,真正大智慧的人: 难得糊涂!最聪...
    高天明月55阅读 214评论 0 0
  • 这个包我想要 大概要花掉我两个月的工资 不吃饭都要买 这条裙子穿上特别好看 可能衣柜里很多类似的款 不介意多收一条...
    飘逸的络腮胡子阅读 466评论 0 0

友情链接更多精彩内容