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

(一)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=%d\t" %(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行

猜你喜欢

转载自www.cnblogs.com/xiaofengzai/p/12483564.html
今日推荐