基于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 ...
随机推荐
- layer实现鼠标悬浮效果
; $(document).on('mouseenter', '.layer_hover', function(){ var words = $(this).data('words'); tip_in ...
- new (std::nothrow) 与 new
普通new一个异常的类型std::bad_alloc.这个是标准适应性态. 在早期C++的舞台上,这个性态和现在的非常不同:new将返回0来指出一个失败,和malloc()非常相似. 在内存不足时,n ...
- linux用户解锁
pam_tally2 --user=username #查看 pam_tally2 --user=username --reset #重置
- 【转】JS中处理Number浮点数精度问题
https://github.com/dt-fe/number-precision ~(function(root, factory) { if (typeof define === "fu ...
- Eclipse导war包忽略node_modules等文件
window7环境下,选择project->Properties->如下图
- Jenkins控制台乱码修改
原文地址:https://www.jianshu.com/p/8b9df45df401 方案一. 设置jenkins所在服务器环境变量,右键我的电脑→属性→高级系统设置→环境变量,添加JAVA_TOO ...
- JVM(三) 对象的创建过程
1.对象的创建过程 1.1 . 给对象分配内存 对象的内存分配有两种方式,一种是指针碰撞另外一种是空闲列表的方式,堆是否规整由我们垃圾回收器来决定的 ,如果垃圾回收带有我们的压缩算法,那么他会规整的分 ...
- 【转】那些年用过的Redis集群架构(含面试解析)
引言 今天是2019年2月12号,也就是大年初八,我接到了高中同学刘有码面试失利的消息. 他面试的时候,身份是某知名公司的小码农一枚,却因为不懂自己生产上Redis是如何部署的,导致面试失败! 人间惨 ...
- 【转帖】如果进入CPU的世界,时间会是怎样的?
如果进入CPU的世界,时间会是怎样的? 2018-02-26 20:52:46 world6 阅读数 1295更多 分类专栏: 网络 缓存服务 架构 版权声明:本文为博主原创文章,遵循CC 4.0 ...
- 【坑】关于springMvc对JSON日期绑定,得到的日期后面多个时间的问题
文章目录 前言 Mysql的Date() 后记 前言 当我们翻过 解决springMvc对JSON日期绑定 眼前这座大山以后,发现并没有 IG 的荣光在等着我们,反而有个大坑在等着我们.... 比如博 ...