【python爬虫】class和class_

本文介绍如何在使用BeautifulSoup库时正确匹配class属性,避免Python关键字冲突导致的错误。通过实例展示了正确的属性匹配方式及其它有效方法。
部署运行你感兴趣的模型镜像

在使用BeautifulSoup库的find_all()方法定位所需要的元素时,当匹配条件为 class时,会编译报错:
这里写图片描述

这时候应该使用 class_ 就不报错了。

soup.find_all('div', class_ = 'iimg-box-meta')

原因:

class在 python 中是关键保留字,不能再将这些字作为变量名或过程名使用,所以class_ 应运而生。

python中共有35个保留关键字

12345
FalseTrueNoneandbreak
asassertasyncawaitclass
continuedefyielddelelif
elseexceptfinallyforfrom
globalifimportinis
lambdanonlocalnotorpass
raisereturntrywhilewith


import requests
from bs4 import BeautifulSoup
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'}
res = requests.get('http://www.cnplugins.com/',headers = headers) #get方法中加入请求头
soup = BeautifulSoup(res.text, 'html.parser') #对返回的结果进行解析
#print (soup.prettify())
 # BeautifulSoup库是一个非常流行的Python模块
 # 可以轻松地解析Requests库请求的网页,并把网页源代码解析位Soup文档,以便过滤提取数据。
 # BeautifulSoup官方推荐使用lxml作为解析器,因为效率高
print (soup.find_all('div', "iimg-box-meta")) # 查找 div class='iimg-box-meta'
print (soup.find_all('div', class_ = 'iimg-box-meta'))
print (soup.find_all('div', attrs = {"class": "iimg-box-meta"}))
print (soup.find_all('a', href = "/tool/save-as-mht.html"))   #可以
print (soup.find_all('a', href_ = "/tool/save-as-mht.html"))  #不行
print (soup.find_all('a', attrs = {"href": "/tool/save-as-mht.html", "target": "_blank"}))

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值