@myles
2018-12-20T12:52:22.000000Z
字数 1814
阅读 672
未分类
soup.select() 方法主要配合 “css selector 路径信息”进行tag标签信息的提取,在结合tag标签方法进行具体“信息”的提取。
序号 | tag方法 | 提取内容 |
---|---|---|
1 | tag.get_text() | 进行标签中的字符串提取; |
2 | tag.get('attr') | 依据属性名进行属性值的提取,如tag.get('src')进行链接信息提取; |
3 | tag.stripped_strings | 进行标签中多之标签信息的提取 |
# coding:utf-8
from bs4 import BeautifulSoup
'''
使用google浏览器 ---》“检查” -> “copy” -> “Copy Selector” 定位标签的层叠描述位置路径;
images: body > div.main-content > ul > li:nth-child(1) > img
titles: body > div.main-content > ul > li:nth-child(1) > div.article-info > h3 > a
cates: body > div.main-content > ul > li:nth-child(1) > div.article-info > p.meta-info > span:nth-child(1)
rates: body > div.main-content > ul > li:nth-child(1) > div.rate > span
descs: body > div.main-content > ul > li:nth-child(1) > div.article-info > p.description
注意:路径信息定位时,注意从父路径进行“所有子标签”信息的全部提取...
'''
# 1、解析源码文件为字符串对象
with open('new_index.html','r') as f:
html_text = f.read()
# 2、解析字符串对象为“html文档结构”对象
soup = BeautifulSoup(html_text,'lxml')
# 3、使用html文档结构对象 “select 方法” 配合 “层叠样式路径” 进行数据标签tag信息提取
images = soup.select('body > div.main-content > ul > li > img')
titles = soup.select('body > div.main-content > ul > li > div.article-info > h3 > a')
cates = soup.select('body > div.main-content > ul > li > div.article-info > p.meta-info')
rates = soup.select('body > div.main-content > ul > li > div.rate > span')
descs = soup.select('div.main-content > ul > li > div.article-info > p.description')
# print(cates)
# print(images,titles,cates,rates,descs,sep='\n**************************\n')
# 使用tag标签方法 get_text() & get('attr_name') 获 “取字符串描述” 与 “图片链接”;
# 学习 zip() 方法使用;
info =[]
for image,title,cate,rate,desc in zip(images,titles,cates,rates,descs):
data = {
'title':title.get_text(),
'rate' :rate.get_text(),
'desc' :desc.get_text(),
# 'cate' :cate.get_text(),
'cate' :list(cate.stripped_strings),
'image':image.get('src')
}
# print(data ,'\n********************************\n')
info.append(data)
for x in info:
if float(x['rate']) > 3.0 :
print(x['title'],x['cate'])
tags 标签信息提取与收集