要解决“被爬取的网站具有不同的类名”这个问题,可以使用以下代码示例来动态获取网页中的类名:
import requests
from bs4 import BeautifulSoup
def get_class_names(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
class_names = []
# 查找所有的标签
tags = soup.find_all()
for tag in tags:
# 获取标签的类名属性
class_name = tag.get('class')
if class_name:
# 如果类名不在列表中,则添加到列表中
if class_name not in class_names:
class_names.append(class_name)
return class_names
# 示例使用的网页链接
url = 'https://example.com'
class_names = get_class_names(url)
print(class_names)
上述代码使用了requests
库来获取网页的内容,使用BeautifulSoup
库来解析网页。代码中的get_class_names
函数接受一个网页链接作为参数,并返回该网页中所有不同的类名。
该函数首先发送一个GET请求获取网页的内容,然后使用BeautifulSoup
库解析网页。通过调用find_all
方法来查找所有的标签,然后使用get
方法获取每个标签的类名属性。
如果类名存在并且不在之前的类名列表中,就将其添加到列表中。最后,返回包含所有不同类名的列表。
你可以将示例代码中的url
替换为你想要爬取的网页链接,并使用class_names
变量来获取网页中的类名。