xpath:从网页结构层面来说吧,假如网页中有一个元素span,你如何确定这个元素是你想要的元素span,因为页面中有很多span元素,这时候就出现了xpath。每一个元素都有唯一的xpath,根据xpath能找到对应的元素,换句话说,xpath就是元素的一个门牌号,根据它就能找到对应的元素。
更多干货,建议你去看看HTML5学堂,决胜前端,掘金等。
CSS是用来配合HTML工作的,可以使用#id来根据ID获取元素,以及使用.class来根据class获取元素.这些用XPath实现的话都不会那么简洁,反过来呢,XPath可以使用..来返回到DOM树的上层节点中,还可以使用foo[bar]来获取到一个拥有bar子元素的foo元素.CSS选择器完全做不到这些,总结一下就是,和XPath比起来,CSS选择器通常都比较短小。希望对你有所帮助,望采纳!让适合的人走进你的生活吧,让旧梦逝去吧,让不合适的那个离开吧。人生,看轻看淡多少,痛苦就离开你多少。因为看轻,所以快乐!
使用关键字传参,如果参数名不是find系函数已定义的位置参数名,参数会被kwargs收集并被当做 标签的属性来搜索 (拥有ID属性的标签)。
属性的传参可以是字符串、正则表达式对象、True、列表。
class是Python关键字,所以使用 class_ 。class是多值属性,可以匹配其中任意一个,也可以完全匹配。
属性:attrs接收一个字典, 字典的key为属性名, value可以是字符串、正则表达式对象、True、列表
可以通过text参数 搜索文档中的字符串内容,接受字符串、正则表达式对象、True、列表
限制返回结果的数量
默认是递归搜索所有子孙节点,如果不需要请设置为False
find_all()是非常常用的方法,可以简化省略掉
find( name , attrs , recursive , text , **kwargs )
和JQuery一样,可以使用CSS选择器来查找节点
使用soup.select()方法,select方法支持大部分CSS选择器,返回列表。
CSS中,标签名直接使用,类名前加.点号,id名前加#井号。
搜索节点的目的往往是为了提取该节点的文本内容, 一般不需要HTML标记, 只需要文字
拿到一个Json字符串,如果想提取其中的部分内容,就需要遍历了。在遍历过程中进行判断。
还有一种方式,类似于XPath,叫做JsonPath。
下表中列出了对应了JSONPath以及对应的XPath用法
依然用豆瓣电影的热门电影的Json, 找到得分高于8分的
https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&page_limit=50&page_start=0
异步请求的数据在XHR中,request请求的html不一定有我们想要的数据;