直接上代码, 你需要修改一下黄色的部分。
from bs4 import BeautifulSoup
import requests
main(url):
html = requests.get(url, timeout=30) #获取网页
soup = BeautifulSoup(html, ‘lxml‘) #获取lxml树
liTags = soup.find_all(‘li‘, attrs={‘class‘: ‘aaa‘})#获取li标签,类名为aaa
comments = [] #初始化一个数组,存放每个li中需要保存的项
for li in liTags: # 迭代器获取每个标签的属性值
comment[‘href‘] =li.find(‘a‘, attrs={‘class‘: ‘bbb‘}, href = True).attrs[‘href‘]) #找到a标签下,类名为bbb,属性值
comment[‘title‘] =li.find(‘a‘, attrs={‘class‘: ‘bbb‘}, href = True).attrs[‘title‘]) #找到a标签下,类名为bbb,属性值
comment[‘text‘] = li.find(‘span‘,attrs={‘class‘:‘ccc‘}).text.strip() #获取span标签下,类名为ccc的文本
一般来说,网页中li标签下的内容,是我们想要的,所以:
1、把所有li标签提取出来, li 可以通过class, id, name, title等等方式匹配。
2、迭代的方式,在每个里标签下,把你想要的标签下内容提取出来,除了class标签,其他的所有标签值都是可以提取出来的,包括title, id, name, ...
标签下有用的内容,有两种获取方式:
.attrs 和 .text
需要注意的是,标签匹配的时候,需要把空格去掉。例如: ‘ aaa‘和‘aaa‘不是同样的标签,如果‘ aaa‘, 可能导致匹配不成功。