1.直接从chrome中复制出来的css selector 没有起作用
我直接从chrome复制出需要标签的 css selector,但是得到了一个空的list,也就说我的css selector并没有帮我定位到需要的标签,需要从chrome中取得的selector做一定的修改。但是改的时候一脸懵不知道从哪里下手。
有可能是因为js的原因,有时候从浏览器直接复制出去的css selector 不能直接使用,需要自己构建一个。感觉从最底层的标签开始构造会比较简单。
css是什么?
如果说建造一个网站是捏一个恐龙的话,html就是骨架,css就是用来填充骨架的树脂,javascript就是让恐龙会动的电子元件。
从w3school的课程中也可以看出,html那块的课程就是教你构成网页的各种元素,而css那块就教你什么让你写的网页更漂亮。
css的语法:
和python的字典有点像只不过python是用,来隔开元素的而不是;。把css直接写在现实的网页中很少见到。更多的是<标签 class="XXX">这种形式。
css的外部样式表:
把所有需要用的css样式写在一个文件中,如果一个网页需要css就用引用文件中的css(看上去有点像python导入第三方模块的感觉)。引用这些css都是在标签中添加 class = "xxx"。
css selector是什么?
[Css属性]选择器又被称为[css样式]属性、css选择器。你可别看见什么选择器就感到陌生感到困惑被吓住了!http://www.divcss5.com/rumen/r61.shtml
如果在编写网页的时候,css selector 用来快速批量的更改一个或者多个标签的css样式。而在bs4中,select函数用css selector来查找你想要的元素。
css selector 在bs4中的使用
1.soup.select('a')
整个HTMLa标签都可以被找到
2.soup.select("body a")
和soup.select('a')对比可以理解成减少了检索的范围,在body里所有的a标签
3.soup.select("head > title")
在head里面的title标签,比如:第一章里所有以a开头的句子
4.soup.select("#link1 ~ .sister")
查找兄弟节点,在实际使用的时候class的描述好像是必须加的
5.soup.select(".sister")
通过css描述来找标签,一般表里中 class = xxxxx 就是css描述
6.soup.select("#link1")
有些标签里会带有id,通过id里的标签去查找
7.soup.select('a[href]')
标签属性来查找
8.soup.select('a[href="http://example.com/elsie"]
通过属性的值来查找
soup.select('a[href^="http://example.com/"]')
a标签中的href属性,所有用http://example.com/开头的
(疑问:如果在a后加了class就不行了?)
soup.select('a[href$="tillie"]')
a标签中的href属性,所有用tillie结尾的
soup.select('a[href*=".com/el"]')
a标签中的href属性,包含了.com/el子串的
9.soup.select('p[lang|=en]')
通过语言来查找
引用的资料:
http://www.w3school.com.cn/cssref/css_selectors.ASP
http://beautifulsoup.readthedocs.io/zh_CN/latest/#id37