简短写法:
soup(name,attribute,string)
# utf-8
# time:2020/4/17 16:43
# author:彭张智
from bs4 import BeautifulSoup
import requests
import re
url='https://www.zhihu.com/'
try:
bili=requests.get(url,headers={'user-agent': 'Mozilla/5.0'})
demo=bili.text
bili.raise_for_status()
soup=BeautifulSoup(demo,'html.parser')
#print(len(soup.find_all('script')))
for i in soup.find_all():
#find_all 第一个参数是标签的名字
print(i.name)
print(soup.find_all(id="root"))
#,第二个是标签的属性
#find_all返回的是一个列表,储存所有的标签
print(soup.find_all(id=re.compile('root')))
#使用正则表达式,得到包含root的所有标签
#正则表达式相当于模糊搜索
#第三个参数是指,是否针对name这个标签的所有子孙搜索。 默认True
#如果关了,那么只会搜索这个tag的儿子节点
#find all 的第四个参数是string 对string 检索
print("."*10)
print(soup.find_all(string=re.compile('Sophie: 工作以后在单位认识的一个单身男,自恋自大鸡贼抠门。 1.刚入职时单位给新员工每人发了10张电影券,我单身所以用的也少,会主动请室友和办公…')))
except:
print("1")