600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 利用正则表达式获取豆瓣TOP250电影的英文名 港台名 导演 主演 上映年份 电影分类以及评分

利用正则表达式获取豆瓣TOP250电影的英文名 港台名 导演 主演 上映年份 电影分类以及评分

时间:2018-10-31 00:23:50

相关推荐

利用正则表达式获取豆瓣TOP250电影的英文名 港台名 导演 主演 上映年份 电影分类以及评分

唐松编《python网络爬虫从入门到实践》第47页3.4.3自我实践题

全部代码为原创代码

完整代码如下:

import requestsimport reheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36'}info_lists = []def get_info(url):res = requests.get(url,headers=headers)filmnames = re.findall('<a href=".*?">.*?<span class="title">(.*?)</span>', res.text, re.S)Englishnames = re.findall('<span class="title">.nbsp;/.nbsp;(.*?)</span>',res.text,re.S)Hongkongnames= re.findall('<span class="other">.nbsp;/.nbsp;(.*?)</span>',res.text,re.S)levels = re.findall('导演:(.*?).nbsp;.nbsp;.nbsp;主演:.*?',res.text,re.S)comments= re.findall('<span class="inq">(.*?)</span>',res.text,re.S)scores = re.findall('<span class="rating_num" property="v:average">(.*?)</span>',res.text,re.S)for filmname,Englishname,Hongkongname,level,comment,score in zip(filmnames,Englishnames, Hongkongnames,levels,comments,scores):info = {'filmname':filmname,'Englishname':Englishname,'Hongkongname':Hongkongname,'level':level,'comment':comment,'score':score}info_lists.append(info)if __name__ == '__main__':urls = ['/top250?start=' + str(i) +'&filter='.format(str(i)) for i in range(0,250,25)]for url in urls:get_info(url)for info_list in info_lists:f = open(r'D:\douban.txt','a+')try:f.write(info_list['filmname']+'\n')f.write(info_list['Englishname']+'\n')f.write(info_list['Hongkongname']+'\n')f.write(info_list['level'] + '\n')f.write(info_list['comment'] + '\n')f.write(info_list['score'] + '\n\n')f.close()except UnicodeEncodeError:passprint(info_list)

打开txt:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。