下列代码中统计id为 "main" 的元素的第一个子元素 ul下的元素个数import requests from bs4 import BeautifulSoup headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.41'} url='https://www.ibiquges.com/xiaoshuodaquan/' strhtml=requests.get(url,headers=headers) soup=BeautifulSoup(strhtml.text,'lxml') info=soup.select('#main > div:nth-child(1) > ul') for item in info: print(item.get_text())
时间: 2024-04-05 22:34:28 浏览: 17
可以使用 Python 的内置函数 len() 统计 id 为 "main" 的元素的第一个子元素 ul 下的元素个数。代码如下:
```
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.41'}
url = 'https://www.ibiquges.com/xiaoshuodaquan/'
strhtml = requests.get(url, headers=headers)
soup = BeautifulSoup(strhtml.text, 'lxml')
info = soup.select('#main > div:nth-child(1) > ul')
count = len(info[0].find_all('li'))
print(count)
```
首先,我们使用 len() 函数统计了 info 列表中第一个元素中的 li 元素的个数,并将结果赋值给变量 count。其中,find_all() 方法返回一个列表,其中包含所有匹配的元素。接着使用 print() 函数打印结果即可。
相关问题
统计下列代码中info中的数据个数import requests from bs4 import BeautifulSoup headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.41'} url='https://www.ibiquges.com/xiaoshuodaquan/' strhtml=requests.get(url,headers=headers) soup=BeautifulSoup(strhtml.text,'lxml') info=soup.select('#main > div:nth-child(1) > ul') count=0 for item in info: print(item.get_text()) count=count+1 print(count)
根据给出的代码,我们可以看到从指定的网站中获取到页面的 HTML 代码,并使用 BeautifulSoup 库进行解析。接着使用 CSS 选择器定位到 id 为 "main" 的元素的第一个子元素 ul,并将其赋值给变量 info。最后使用 for 循环遍历 info 中的每个元素,并打印元素的文本内容,同时累加计数器 count 的值。因此,info 中的数据个数取决于网站中 id 为 "main" 的元素的第一个子元素 ul 中的数据个数。无法确定具体的数据个数。
删去下列代码中info1_list的html标签import requests from bs4 import BeautifulSoup import matplotlib.pyplot as plt import numpy as np headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.41'} url='https://www.ibiquges.com/xiaoshuodaquan/' strhtml=requests.get(url,headers=headers) soup=BeautifulSoup(strhtml.text,'lxml') info_list = []#书籍目录 count_list = []#书籍数量 info1_list = [] for i in range(1, 14, 2): info = soup.select(f'#main > div:nth-child({i}) > ul') info1 = soup.select(f'#main > div:nth-child({i}) > h2') for item in info: #print(item.get_text()) count = len(info[0].find_all('li')) count_list.append(count) info_list.append(info) for item1 in info1: print(item1.get_text()) info1_list.append(info1) print(info1_list) print(count_list)
可以使用BeautifulSoup库中的get_text()方法来删除info1_list中的HTML标签,代码如下:
import requests from bs4 import BeautifulSoup import matplotlib.pyplot as plt import numpy as np headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.41'} url='https://www.ibiquges.com/xiaoshuodaquan/' strhtml=requests.get(url,headers=headers) soup=BeautifulSoup(strhtml.text,'lxml') info_list = []#书籍目录 count_list = []#书籍数量 info1_list = [] for i in range(1, 14, 2): info = soup.select(f'#main > div:nth-child({i}) > ul') info1 = soup.select(f'#main > div:nth-child({i}) > h2') for item in info: #print(item.get_text()) count = len(info[0].find_all('li')) count_list.append(count) info_list.append(info) for item1 in info1: print(item1.get_text()) info1_list.append(item1.get_text()) print(info1_list) print(count_list)