from bs4 import BeautifulSoup
html =‘<html>aads</html>’
bs = BeautifulSoup(html,’html.parser’)
bs.find(‘div’)
div_tag = bs.find(‘div’,id="info”) 选择所有id为info的div
children = div_tag.contents 提取所有子元素 descendant遍历
next_siblings(是否加s)兄弟节点 previous_siblings
div_tag.get(“class”) 获取属性
Scrapy Selector Xpath
//div[@lang] 所有拥有属性为lang的div
//div[@lang=‘eng] 所有拥有属性lang等于eng的div
/div/div[last()] div 下面的div数组的最后一个
/div/* 选取div下的所有子节点
//div/div[contains(@class,'hello’)]
import scrapy from Selector
sel = Selector(text=html)
girl_friend_name_class=“/html/body/div[1]/p/@class”
sel.xpath(girl_friend_name_class).extract()
more_than_class1 = "//div/div[contains(@class,'hello')]”
ps
浏览器源码选择元素 右键 可以提取表达式
contains 内置了很多方法
Css选择器
div > p 获取div下的第一个p元素
div p 获取div下所有p元素
#name 获取id为name
.name 获取class为name
ul + p 获取ul下第一个p元素
ul ~ p ul所有相邻的p元素
a[hrep=‘https://baidu.com'] 获取href等于‘https://baidu.com的a元素
href$ href^ href*
import scrapy from Selector
sel = Selector(text=html)
name_tag = sel.css(".name1 > p::text").extract()[0]