zoukankan      html  css  js  c++  java
  • 基于beautifulSoup进行电影网站排名的获取与格式化输出

    要求

    编写代码完成以下任务:

    ① 将地址"http://www.cbooo.cn/year?year=2019"源代码使用任意方法保存到指定文件中(文件类型不限)。

    ② 使用文件流读取该页面内容到程序中

    ③ 使用Python以任意方法提取出页面中的电影排名与电影名,并以如下形式打印输出

    输出格式为:第*名-《***》

    代码

    import urllib.request
    from bs4 import BeautifulSoup
    import os
    
    # 1、获取详细的页面数据
    def get_html_link(link,outHtml):
        #如果超链接非空
        if link is not None:
            #请求超链接页面HTML
            link_list=urllib.request.urlopen(link).read()
            # 将内容写到文件中去
            with open(outHtml,"w") as f:
                f.write(link_list.decode('utf-8'))
            # 从文件中读取内容
            fullPath = "file:///"+os.getcwd()+"/"+outHtml
            link_list2 = urllib.request.urlopen(fullPath).read()
            # 格式化HTML
            soup=BeautifulSoup(link_list2,'lxml')
            # 获取class='one'的标签
            content=soup.find_all('td',class_='one')
            for tag in content:
                tdlist = tag.find_all('a')
                # 通过字符串支持的查找操作对目标进行查找。目标字符串如下图所示。
                """
                 [<a class="active" href="http://www.cbooo.cn/m/642412" title="流浪地球">
                 <img alt="流浪地球" onerror="this.src='../../Content/images/nopic.jpg'" 
                 src="http://images.entgroup.cn/group1/M00/00/AB/wKgASVzny4uAEWvcAABfH3c7ZxA728.jpg"/>
                 <p><span>1.</span>流浪地球</p></a>]
                """
                pos = str(tdlist).find('title')
                posEnd = str(tdlist).find('"',pos+8)
                tmp = str(tdlist)[pos+7:posEnd]
                yield tmp
        else:
            print("网页链接有问题,请重试")
    
    # 2、数据保存
    def save_suject(title_content):
        # 将输出输出到文件中
        with open('output.txt','w+',encoding='utf-8') as f:
            cnt = 1
            for tile in title_content:
                f.write(tile+'
    ')
                print("第%d名-《%s》" % (cnt,tile))
                cnt += 1
    
    # 3、函数回调
    def fun_call(url,out):
        title_content=get_html_link(url,out)
        save_suject(title_content)
        
    if __name__=='__main__':
        url='http://www.cbooo.cn/year?year=2019'
        outHtml = "out.html"
        fun_call(url,outHtml)    
    
  • 相关阅读:
    BETA冲刺(6/7)
    BETA冲刺(5/7)
    BETA冲刺(4/7)
    BETA冲刺(3/7)
    BETA冲刺(2/7)
    福大软工 · 第十次作业
    BETA冲刺(1/7)
    第08组 Beta版本演示
    第08组 Beta冲刺(4/4)
    第08组 Beta冲刺(3/4)
  • 原文地址:https://www.cnblogs.com/pprp/p/11005933.html
Copyright © 2011-2022 走看看