soup.select()与find_all()的实例

  • douban.html文件的部分内容如下,要把电影的片名、评分、评价人数、链接整理出来

在这里插入图片描述

1、用select()方法整理

import bs4, requests

file_object = open('F:\\python_work\\CSDN\\douban.html', 'rb') #以二进制形式打开文件
soup = bs4.BeautifulSoup(file_object, features='html.parser')
linkTitle = soup.select('.title') #匹配class类属性为title的元素
linkRatingNum = soup.select('.rating_num') #匹配class类属性为rating_num的元素
linkAssess = soup.select('.star span') #匹配class类属性为star的名为<span>的元素
relatedLink = soup.select('.info a') #匹配class类属性为info的名为<a>的元素

print("The followed list: \n")
newLinkTitle = [] #因为匹配到的片名有英文的,所以用这个方法剔除掉,建立新的片名列表
for title in linkTitle:
    if title.getText().startswith(' /'):
        continue
    newLinkTitle.append(title)
for i in range(len(newLinkTitle)):
    print(newLinkTitle[i].getText().ljust(10), end='')
    print(linkRatingNum[i].getText().ljust(5), end='')
    print(linkAssess[4*i+3].getText().ljust(20), end='')
    print(relatedLink[i].get('href').ljust(50))

2、用find_all()方法整理

import bs4, requests

file_object = open('F:\\python_work\\CSDN\\douban.html', 'rb')
soup = bs4.BeautifulSoup(file_object, features='html.parser')
print("The followed list: \n")
for tag in soup.find_all('div', class_='info'):
    movie_title = tag.find('span', class_='title').get_text()
    rating_num = tag.find('span', class_='rating_num').get_text()
    assess_star = tag.find('div', class_='star')
    star_data = assess_star.find_all('span')
    people_num = star_data[3].get_text()
    movie_link = tag.find('a').get('href')
    print(movie_title.ljust(10), rating_num.ljust(5), people_num.ljust(20), movie_link.ljust(50))

打印结果

The followed list: 

肖申克的救赎     9.7   2106376人评价           https://movie.douban.com/subject/1292052/         
霸王别姬       9.6   1561807人评价           https://movie.douban.com/subject/1291546/         
阿甘正传       9.5   1591829人评价           https://movie.douban.com/subject/1292720/         
这个杀手不太冷    9.4   1779159人评价           https://movie.douban.com/subject/1295644/         
泰坦尼克号      9.4   1544346人评价           https://movie.douban.com/subject/1292722/         
美丽人生       9.5   993919人评价            https://movie.douban.com/subject/1292063/         
千与千寻       9.4   1655300人评价           https://movie.douban.com/subject/1291561/         
辛德勒的名单     9.5   809664人评价            https://movie.douban.com/subject/1295124/         
盗梦空间       9.3   1518494人评价           https://movie.douban.com/subject/3541415/         
忠犬八公的故事    9.4   1056642人评价           https://movie.douban.com/subject/3011091/         
海上钢琴师      9.3   1265576人评价           https://movie.douban.com/subject/1292001/         
楚门的世界      9.3   1140218人评价           https://movie.douban.com/subject/1292064/         
三傻大闹宝莱坞    9.2   1409033人评价           https://movie.douban.com/subject/3793023/         
星际穿越       9.3   1185021人评价           https://movie.douban.com/subject/1889243/         
机器人总动员     9.3   997620人评价            https://movie.douban.com/subject/2131459/         
放牛班的春天     9.3   980216人评价            https://movie.douban.com/subject/1291549/         
大话西游之大圣娶亲  9.2   1119644人评价           https://movie.douban.com/subject/1292213/         
熔炉         9.3   688018人评价            https://movie.douban.com/subject/5912992/         
疯狂动物城      9.2   1343958人评价           https://movie.douban.com/subject/25662329/        
无间道        9.2   911174人评价            https://movie.douban.com/subject/1307914/         
龙猫         9.2   941519人评价            https://movie.douban.com/subject/1291560/         
教父         9.3   687561人评价            https://movie.douban.com/subject/1291841/         
当幸福来敲门     9.1   1134295人评价           https://movie.douban.com/subject/1849031/         
怦然心动       9.1   1315615人评价           https://movie.douban.com/subject/3319755/         
触不可及       9.2   733883人评价            https://movie.douban.com/subject/6786002/         
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值