from bs4 import BeautifulSoup
with open('C:/Users/Administrator/Desktop/python/Plan-for-combating-master/week1/1_2/1_2code_of_video/web/new_index.html','r') as web: soup = BeautifulSoup(web,'lxml')
titles = soup.select('body > div.main-content > ul > li > div.article-info > h3 > a')#抓取网页中的title 项
cates = soup.select('body > div.main-content > ul > li > div.article-info > p.meta-info')#抓取网页中的项,因为cate是多对一,所以去掉span标签
descs = soup.select('body > div.main-content > ul > li > div.article-info > p.description')#抓取descs项目
rates= soup.select('body > div.main-content > ul > li > div.rate > span')#抓取rate项
images= soup.select('body > div.main-content > ul > li > img')#抓取图片
# print(titles,cates,descs,rates,images,sep='\n==================\n')
info = []
for title,cate,desc,rate,img in zip(titles,cates,descs,rates,images):
data = { 'title':title.get_text(),#用方法提取title标签中的文本
'cate':list(cate.stripped_strings),#用stripped_strings方法提取多个cate,并加入list列表中,将列表作为cate的键值
'desc':desc.get_text(),
'rate':rate.get_text(),
'image':img.get('src'),#用get方法提取image标签中的src属性。
}
info.append(data)#每一次循环是,把字典data的值插入到info列表中
# print(info)
for i in info:#利用for循环找出rate大于3的info值
if float(i['rate']) > 3:
print(i['title'],i['rate'],i['cate'],i['image'],i['desc']) #在zip字典下获取文本,如:title.get_text() title必须跟html文件一样#soup.select('')中,必须在括号中加单引号
解析网页(2)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- (一)任务内容:将从以下网页中筛选出评分大于3的文章,并显示出文章题目及标签。 (二)最终成果展示 (三)我的代码...
- 笔记 爬取网页的基本方法: 使用BeautifulSoup解析网页Soup = BeautifulSoup(htm...
- 解析一个本地网页,获取标题,图片地址,价格,评分量和评分星级。网页如下 代码 运行结果 总结 1.用Python爬...