任务描述
本关任务:先从豆瓣电影排行榜上爬取电影标题和链接,由链接进入二级页面,爬取影片简介,最后保存到文本文件。 文本文件格式如下图所示:

相关知识
为了完成本关任务,你需要掌握:1.网页解析,2.同时遍历多个列表,3.访问二级页面,4.文本文件操作。
网页解析
网页解析的目标是从网页中获取自己需要的信息 导入库:from bs4 import BeautifulSoup 1.用BeautifulSoup将网页解析成标签树 soup = BeautifulSoup(html,html.parser') 2.用相关解析方法获取所需信息sopup find_all(): soup.find_all('a',{ 'class': 'item'}) #获得所有class属性值为item的a标签的列表 find(): soup.find('a') #获得第一条a标签 get(): a_tag.get('class') #获取标签a_tag的class属性值
同时遍历多个列表
例如:有两个列表list1,list2,用zip函数可以同步遍历两个列表: for i,j in zip(list1,list2) ...
访问二级页面
首先由一级页面中获取相应链接href,然后: r=requests(url,headers=headers) r.text即为二级页面文件。
文本文件操作
1.读文本文件实例
# coding=utf-8with open('D:\test.txt','r') as f:txt=f.read()
上述代码可以将D盘中的test.txt中的内容读到字符串txt中。
2.读文本文件实例
# coding=utf-8txt='''Londoners are under starter's orders as the city gets ready for the Olympic Games, which will begin one year today.'''with open('D:\test.txt','w') as f:f.write(txt)
上述代码可以将txt中的内容写入D盘下的test.txt文件。
编程要求
根据提示,在右侧编辑器补充代码,爬取影片标题和简介,并保存到文本文件。
测试说明
平台会对你编写的代码进行测试,比对你输出的结果与实际正确的结果,只有所有结果全部正确才算完成本关任务。
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 19 14:05:47 2019
@author: Administrator
"""
#豆瓣电影排行榜
import requests
from bs4 import BeautifulSoup
#豆瓣电影排行榜
url="https://movie.douban.com/chart"
#文件名
filename='douban.txt'
#请求网页
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36'}
r=requests.get(url,headers=headers)
def gettitle(html):
soup=BeautifulSoup(html,'html.parser')
titles=[]
briefs=[]
# 请按下面的注释提示添加代码,完成相应功能
###### Begin ######
# 1.先获取影片标题和链接,再由链接得到影片简介,最后将影片标题和简介分别存放在titles和briefs列表中
datas = soup.find_all('a', {'class': 'nbg'})
for item in datas:
titles.append(item.get('title'))
href = item.get('href')
briefs.append(getdetail(href))
return titles, briefs
####### End #######
#先获取影片标题和链接,再由链接得到影片简介,最后将影片标题和简介加入到links列表中
def getdetail(href):
# 请按下面的注释提示添加代码,完成相应功能
###### Begin ######
# 2.由排行榜上的影片链接进入影片详情页面,获取影片简介并返回
hrefs = requests.get(href, headers=headers)
soups = BeautifulSoup(hrefs.text, 'html.parser')
datas = soups.find('span', {'property': 'v:summary'})
spans = datas.text.strip().replace(' ', '').replace('\n', '')
####### End #######
def savefile(titles,briefs,filename):
# 请按下面的注释提示添加代码,完成相应功能
###### Begin ######
# 3.将影片标题和简介按指定格式保存到文本文件
num = 1
with open(filename, 'w') as f:
for i, j in zip(titles, briefs):
f.write("{:}>{}\n{}\n".format(num, titles, briefs))
num = num + 1
####### End #######
titles,briefs=gettitle(r.text)
savefile(titles,briefs,filename)
本文介绍了如何使用Python的requests和BeautifulSoup库爬取豆瓣电影排行榜的电影标题、链接,进一步访问二级页面获取影片简介,并将结果保存到文本文件的过程。
980

被折叠的 条评论
为什么被折叠?



