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行

  • 相关阅读:
    jeecms 强大的采集功能优化 转载 https://blog.csdn.net/jeff06143132/article/details/7099003
    JEECMS自定义标签开发步骤
    jeecms之全文检索
    jeecms怎么修改后台访问路径?
    jeecms 基本架构研究
    Java JNI初探
    《高效程序员的45个习惯》
    Java并发编程:Thread类的使用
    Thread详解
    JAVA多线程实现的四种方式
  • 原文地址:https://www.cnblogs.com/xiaofengzai/p/12483564.html
Copyright © 2011-2022 走看看