基于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+'\n')
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)
基于beautifulSoup进行电影网站排名的获取与格式化输出的更多相关文章
- 基于ssm的电影售票选座管理系统基于Java的电影网站的网页设计与制作源码
注意:此项目只截图部分功能,可评论区咨询查看项目全部功能演示! 1.开发环境 开发语言: 后台框架:SSM(Spring+SpringMVC+Mybatis) 前端技术:HTML+CSS+JavaSc ...
- 基于visual Studio2013解决C语言竞赛题之0203格式化输出
题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { // print是输出函数,参数%s表示输 ...
- 基于Spark的电影推荐系统(电影网站)
第一部分-电影网站: 软件架构: SpringBoot+Mybatis+JSP 项目描述:主要实现电影网站的展现 和 用户的所有动作的地方 技术选型: 技术 名称 官网 Spring Boot 容器 ...
- 使用express4.X + jade + mongoose + underscore搭建个人电影网站
(-。-;), 周末过得真是快啊, 很久以前就看到imooc上有个搭建个人电影网站一期 ,二期的视频, 这两周宅家里撸玩没事干, 我也学着搭了一个, 这些东西都是基础, 只要花点时间很好学的, no ...
- 演练2-4:CodeFirst实例之“电影网站制作”
原文出处:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-model EntityFr ...
- Node.js 蚕食计划(四)—— Express + SQL Server 搭建电影网站
前段时间在慕课网上看了 scott 大神的<node+mongodb建站攻略>课程,按照自己的思路做了一遍,发博客记录一下 一.项目介绍 这个项目是一个简单的电影网站,由首页.详情页.评论 ...
- 基于pytorch的电影推荐系统
本文介绍一个基于pytorch的电影推荐系统. 代码移植自https://github.com/chengstone/movie_recommender. 原作者用了tf1.0实现了这个基于movie ...
- 基于js-spark-md5前端js类库,快速获取文件Md5值
js-spark-md5是歪果仁开发的东西,有点多,但是我们只要一个js文件即可,具体类包我存在自己的oschina上,下载地址:https://git.oschina.net/jianqingwan ...
- 利用Python爬取电影网站
#!/usr/bin/env python #coding = utf-8 ''' 本爬虫是用来爬取6V电影网站上的电影资源的一个小脚本程序,爬取到的电影链接会通过网页的形式显示出来 ''' impo ...
随机推荐
- NDK开发和NDK双进程守护
https://www.jianshu.com/p/433b2c93c6a7 NDK进程守护 https://blog.csdn.net/k393393/article/details/7895435 ...
- 汉字转拼音插件:LM-PinYin.js
CDN:http://dtdxrk.github.io/jsPlug/pinyin/LM-PinYin.js demo演示地址:http://dtdxrk.github.io/jsPlug/pinyi ...
- json数据的key的读取和替换
读取json的key: /** * @Description: 递归读取所有的key * @Param: * @return: * @throws Exception * @author: hw * ...
- AES加密、解密(linux、window加密解密效果一致,支持中文)
转自: http://sunfish.iteye.com/blog/2169158 import java.io.UnsupportedEncodingException; import java.s ...
- 关于time_wait状态的理解
TIME_WAIT状态之所以存在,是为了保证网络的可靠性 有以下原因: 1.为实现TCP全双工连接的可靠释放 当服务器先关闭连接,如果不在一定时间内维护一个这样的TIME_WAIT状态,那么当被 ...
- [转帖]CentOS 7 安装 GlusterFS
CentOS 7 安装 GlusterFS https://www.cnblogs.com/jicki/p/5801712.html 改天测试一下 我一直没有搞这一块呢. CentOS 7 Glu ...
- noip2019集训测试赛(二十一)Problem B: 红蓝树
noip2019集训测试赛(二十一)Problem B: 红蓝树 Description 有一棵N个点,顶点标号为1到N的树.N−1条边中的第i条边连接顶点ai和bi.每条边在初始时被染成蓝色.高桥君 ...
- 剑指offer13:数组[奇数,偶数],奇数偶数相对位置不变。
1. 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 2. 思路和方 ...
- sublime3 安装markdown插件
sublime3 安装markdown插件 第一步安装package control 自动安装package control 手动安装package control 安装具体的markdown相关的p ...
- OpenCV学习笔记5
OpenCV学习笔记5 图像变换 傅里叶变换 这里可以先学习一下卷积分,了解清除卷积的过程和实际意义,在看这一章节的内容. 原理: 傅里叶变换经常被用来分析不同滤波器的频率特性.我们可以使用 2D 离 ...