python3 爬取豆瓣电影TOP250,漂亮表格彩色显示

举报
悦来客栈的老板 发表于 2020/12/28 22:43:07 2020/12/28
【摘要】 #coding=utf-8 import requestsimport refrom bs4 import BeautifulSoupfrom prettytable import PrettyTablefrom colorama import Fore,Style def getHtml(url): headers = {'User-Agent': 'Mozilla...

  
  1. #coding=utf-8
  2. import requests
  3. import re
  4. from bs4 import BeautifulSoup
  5. from prettytable import PrettyTable
  6. from colorama import Fore,Style
  7. def getHtml(url):
  8. headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'}
  9. page = requests.get(url,headers = headers)
  10. html =page.text
  11. return html
  12. if __name__=='__main__':
  13. table = PrettyTable(['NO.','movie','year','star','vote'])
  14. movies = []
  15. years = []
  16. stars = []
  17. votes = []
  18. for page in range(0,250,25):
  19. url = 'https://movie.douban.com/top250?start={0}&filter='.format(page)
  20. Html = getHtml(url)
  21. Soup = BeautifulSoup(Html,'html.parser')
  22. names = Soup.find_all('div',class_ = 'info')
  23. for name in names:
  24. movie = name.find_all('span',class_ = 'title')
  25. movies.append(movie[0].text)
  26. tags = Soup.find_all('p',class_ = '')
  27. for tag in tags:
  28. tag = tag.text
  29. reg = r'\d+'
  30. tag = re.findall(reg,tag)
  31. years.append(tag[0])
  32. tags = Soup.find_all('div',class_ = 'star')
  33. for tag in tags:
  34. star = tag.find_all('span')
  35. stars.append(star[1].text)
  36. reg = r'\d+'
  37. vote = re.findall(reg,star[3].text)
  38. votes.append(vote[0])
  39. for i in range(0,250):
  40. table.add_row([Fore.RED + str(i+1),Style.BRIGHT + Fore.GREEN + movies[i],Fore.YELLOW +years[i],Fore.BLUE +stars[i],Fore.CYAN +votes[i]])
  41. print (table)

效果图如下:

 

 

文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq523176585/article/details/82845504

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。