Python中如何爬取li标签内容

Python中如何爬取li标签内容

作者:William Gu发布时间:2026-01-14阅读时长:0 分钟阅读次数:4

用户关注问题

Q
如何使用Python获取网页中所有li标签的文本?

我想用Python提取网页上所有的li标签中的文本内容,应该怎样操作?需要用到哪些库?

A

利用BeautifulSoup提取li标签文本

可以使用Python的requests库获取网页内容,再用BeautifulSoup库解析HTML,最后通过find_all('li')方法获取所有li标签,然后访问其.text属性进行提取。示例代码:

import requests
from bs4 import BeautifulSoup

response = requests.get('网页URL')
soup = BeautifulSoup(response.text, 'html.parser')
li_tags = soup.find_all('li')
for li in li_tags:
print(li.text.strip())

Q
爬取含有特定class的li标签内容怎样实现?

网页中有多个li标签,我只想提取class属性为某个值的li标签内容,用Python该怎么写?

A

通过指定class参数过滤li标签

BeautifulSoup的find_all方法支持传入class_参数来筛选匹配的标签,例如:

li_tags = soup.find_all('li', class_='目标class名称')
for li in li_tags:
print(li.text.strip())
这样可以只爬取指定class的li标签文本。

Q
如何处理网页中动态生成的li标签内容进行爬取?

有些网页的li标签内容不是静态HTML,而是通过JavaScript动态生成,直接请求页面拿不到这些内容,怎么解决?

A

使用Selenium模拟浏览器抓取动态内容

对于动态加载的li标签,可以使用Selenium库自动打开浏览器,等待页面加载完成,再通过页面源码获取所需要内容。例如:

from selenium import webdriver
from bs4 import BeautifulSoup

browser = webdriver.Chrome()
browser.get('网页URL')

适当等待页面加载或使用显式等待

html = browser.page_source
soup = BeautifulSoup(html, 'html.parser')
li_tags = soup.find_all('li')
for li in li_tags:
print(li.text.strip())

browser.quit()