Beautiful Soup4 de la biblioteca de terceros del rastreador de python

1. Descargar

pip install bs4

inserte la descripción de la imagen aquí

2. Introducción

Beautiful Soup4, conocido como bs4 para abreviar, es un analizador HTML/XML cuya función principal es analizar y extraer datos HTML/XML. Admite no solo selectores css, sino también analizadores HTML de la biblioteca estándar de python y XML de lxml.
Documentación oficial: https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

3. Uso básico

1. Cree un objeto BeautifulSoup
Método 1:

import urllib.request
from bs4 import BeautifulSoup
//读取html对象
url="https://news.hist.edu.cn/kyyw/378.htm"
request=urllib.request.Request(url);
response=urllib.request.urlopen(request)
html=response.read().decode("utf-8");
//构建BeautifulSoup对象
bs=BeautifulSoup(html,"html.parser",from_encoding='utf-8')

Método 2:

from bs4 import BeautifulSoup 
file = open('https://news.hist.edu.cn/kyyw/378.htm', 'rb') 
html = file.read() 
bs = BeautifulSoup(html,"html.parser") # 缩进格式

Nota: html, analizador significa que el analizador utilizado es la biblioteca estándar de python, y otras bibliotecas estándar son las siguientes
inserte la descripción de la imagen aquí
2. Interprete y busque a través del método de operación

print(bs.prettify()) # 格式化html结构
print(bs.title) # 获取title标签的名称
print(bs.title.name) # 获取title的name
print(bs.title.string) # 获取head标签的所有内容
print(bs.head) 
print(bs.div)  # 获取第一个div标签中的所有内容
print(bs.div["id"]) # 获取第一个div标签的id的值
print(bs.a) 

find(): se utiliza para buscar el primer nodo de etiqueta que cumple las condiciones de la consulta
método find_all(): busca todos los nodos de etiqueta que cumplen las condiciones de la consulta y devuelve una lista

print(bs.find_all("a")) # 获取所有的a标签
for item in bs.find_all("a"): 
    print(item.get("href")) # 获取所有的a标签,并遍历打印a标签中的href的值
for item in bs.find_all("a"): 
    print(item.get_text())//获取a标签文本内容
#attrs参数
print(bs.find_all(id="u1")) # 获取id="u1"的所有标签
bs.find_all(“a”,class_="app")获取所有的a标签,并且其类名为app

3. Buscar por selector css

bs.select("p")#通过标签查找
bs.select(".app")#通过类名查找
bs.select("#link")#通过id名查找
bs.select('p #link')#通过组合查找
bs.select("a[href='http://baidu.com']")#通过属性查找

4. Caso

import urllib.request
from bs4 import BeautifulSoup
url="https://news.hist.edu.cn/kyyw/378.htm"
request=urllib.request.Request(url);
response=urllib.request.urlopen(request)
html=response.read().decode("utf-8");
bs=BeautifulSoup(html,"html.parser",from_encoding='utf-8')
print(bs.prettify())#格式化html结构
# print(bs.find_all("a"))
divs=bs.find_all('div',{
    
    'class':'sec-a'})
lis=divs[0].find_all('li')
#爬取新闻链接和新闻标题并写入xinwen.txt文档里面
with open("xinwen.txt","w") as fp:
   for li in lis:
       fp.write(li.find_all("a")[0].get('href')+","+li.find_all("a")[0].get('title')+"\n")

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/CYL_2021/article/details/127040838
Recomendado
Clasificación