Python进阶练习与爬取豆瓣T250的影片相关信息

  • 2020 年 3 月 12 日
  • 笔记

(一)Python进阶练习

正所谓要将知识进行实践,才会真正的掌握

于是就练习了几道题:求素数,求奇数,求九九乘法表,字符串练习

import re  #求素数  i=1;  flag=0  while(i<=100):      flag=0      j=2;      while(j<i):          if(i%j==0):              flag=1              break;          j=j+1      if(flag==0):          print(i,end=' ')      i=i+1    #求奇数  for i in range(1,101):      if(i%2==1):          print(i,end=' ')    #字符串练习  str="你好$$$我正在学 Python@#@#现在需要&*&*&修改字符串"  k=str.replace('$$$','').replace('@#@#',' ').replace('&*&*&',' ')  print(k)  p=re.sub('[$@#&*]',' ',str)  print(p)    #九九乘法表  for i in range(1,10):      for j in range(1,i+1):          print("%d*%d=%dt" %(j,i,i*j),end="")      print("")

View Code

(二)爬取静态网页

这次我们练习的实战是爬取静态网页,豆瓣T250电影的名字

首先我们分析一页有25个电影,我们想要250个,进行下一页的时候他的链接地址变成“https://movie.douban.com/top250?start=25”同理每翻一页就会增加25.我们就可以对这250个数据进行爬取了

我们要获取的信息是:电影名字,导演与主演以及时间类型,豆瓣评分,多少人评价

将这些信息存入到txt里面

import requests  from bs4 import BeautifulSoup      def get_movie():      url = 'https://movie.douban.com/top250'  #请求地址      headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}#创建头部信息      movie_list=[]      for i in range(0,10):          url = 'https://movie.douban.com/top250?start='+str(i*25)          response=requests.get(url,headers=headers)          soup=BeautifulSoup(response.text,"html.parser")          div_list = soup.find_all('div', class_='info')          for each in div_list:              title = each.find('div', class_="hd").span.text.strip()              info = each.find('div', class_='bd').p.text.strip()              info = info.replace('\n', '').replace('\xa0', '')              info = ' '.join(info.split())              star = each.find('span', class_='rating_num').text.strip()              people = each.find('div', class_='star').contents[7].text.strip()              movie_list.append([title, info, star, people])      return movie_list  movie=[]  movie=get_movie()  with open("Top_movie_250.txt","a+",encoding="utf-8") as f:      for i in range(len(movie)):          f.write(str(movie[i]))          f.write("n")      f.close()

View Code

 

txt展示:

 

 

 

日期 开始时间 结束时间 中断时间 净时间 活动
3/12 20:30 21:45 0 75 python练习与爬取T25的名字
3/12 22:00 22:30 5 25 爬取T250电影的名字,导演,评分等

 

 

 

 

总学习时长:100分钟,净代码行数:90行