zoukankan      html  css  js  c++  java
  • 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	" %(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("
    ")
        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行

  • 相关阅读:
    第八章 多线程编程
    Linked List Cycle II
    Swap Nodes in Pairs
    Container With Most Water
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock II
    Linked List Cycle
    4Sum
    3Sum
    Integer to Roman
  • 原文地址:https://www.cnblogs.com/xiaofengzai/p/12483564.html
Copyright © 2011-2022 走看看