当前位置: 首页 > news >正文

python实验16_网络爬虫

实验16:网络爬虫

1.实验目标及要求

(1)掌握简单爬虫方法。

2. 实验主要内容

爬取中国票房网

① 爬取中国票房网(www.cbooo.cn)2019年票房排行榜前20名的电影相关数据
代码部分:

import time
from selenium.webdriver import Edge
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Selectweb=Edge()
web.get("https://www.endata.com.cn/BoxOffice/BO/Year/index.html")
# 定位下拉列表
sel_el=web.find_element(By.XPATH,'//*[@id="OptionDate"]')
sel=Select(sel_el)
sel.select_by_value("2019")
time.sleep(2)
# 输出标头信息
thead=web.find_element(By.XPATH,'//*[@id="TableList"]/table/thead/tr')
print(thead.text)
# 查询前二十个电影
for i in range(1,21):tr=web.find_element(By.XPATH,'//*[@id="TableList"]/table/tbody/tr['+str(i)+
']')print(tr.text.replace('\n',' '))
web.close()

输出结果:

  影片名称 类型 总票房() 平均票价 场均人次 国家及地区 上映日期
1 哪吒之魔童降世 动画 500,359 36 24 中国 2019-07-26
2 流浪地球 科幻 468,150 45 29 中国 2019-02-05
3 复仇者联盟4:终局之战 动作 424,922 49 23 美国 2019-04-24
4 我和我的祖国 剧情 312,366 39 36 中国/中国香港 2019-09-30
5 中国机长 剧情 290,354 38 27 中国 2019-09-30
6 疯狂的外星人 喜剧 221,275 42 30 中国 2019-02-05
7 飞驰人生 喜剧 172,733 42 25 中国 2019-02-05
8 烈火英雄 灾难 170,339 36 19 中国 2019-08-01
9 少年的你 剧情 155,623 36 16 中国 2019-10-25
10 速度与激情:特别行动 动作 143,430 36 15 美国 2019-08-23
11 蜘蛛侠:英雄远征 动作 141,751 36 17 美国 2019-06-28
12 扫毒2:天地对决 剧情 131,143 36 17 中国/中国香港 2019-07-05
13 大黄蜂 动作 114,956 36 11 美国 2019-01-04
14 攀登者 剧情 109,501 37 22 中国 2019-09-30
15 惊奇队长 动作 103,518 37 14 美国 2019-03-08
16 比悲伤更悲伤的故事 爱情 95,792 31 15 中国台湾 2019-03-14
17 哥斯拉2:怪兽之王 科幻 93,737 37 15 美国 2019-05-31
18 阿丽塔:战斗天使 动作 89,698 38 14 美国/加拿大/阿根廷 2019-02-22
19 银河补习班 剧情 87,772 34 16 中国 2019-07-18
20 误杀 剧情 83,173 34 15 中国 2019-12-13

综合爬虫统计数据

② 请编程实现如下操作:从网址http://www.kanunu8.com/book3/6879/上爬取小说《动物农场》的所有章节;分析小说《动物农场》,按词频输出三个字的词汇前 10 项;根据词频画出这10个词汇的直方图,并另存为文件“动物农场词频.png”。
代码部分:爬虫部分

import time
from selenium.webdriver import Edge
from selenium.webdriver.common.by import Byweb=Edge()
web.get("https://www.kanunu8.com/book3/6879/131779.html")
text=open('动物农场.txt', 'a', encoding='gbk')
# 循环十章
for _ in range(10):# 定位到文章内容p=web.find_element(By.XPATH,'/html/body/div/table[5]/tbody/tr/td[2]/p')text.write(p.text.replace('\n',''))time.sleep(2)# 点击下一页click=web.find_element(By.XPATH,'/html/body/div/table[7]/tbody/tr/td/table/
tbody/tr/td[3]/strong/a').click()time.sleep(20)
输出结果:代码部分:词频分析部分
import jieba
import matplotlib.pyplot as plts=open('动物农场.txt', 'r', encoding='utf-8',errors='ignore').read()
jieba.load_userdict('动物农场.txt')
words=jieba.lcut(s)   # 进行分词操作stopwords_list=[]     # 创建中文停用词列表
with open('./作业十二/stopword.txt','r',encoding='utf-8') as f:for line in f:line = line[:-1]stopwords_list.append(line)words_dict={}
for word in words:# 长度大于1和不在停用词中的词 保存到字典并记录词频if word not in stopwords_list and len(word)!=1:words_dict[word]=words_dict.get(word,0)+1
words_list=list(words_dict.items())
words_list.sort(key=lambda x:x[1],reverse=True)  #按词频大小排序
# 分别记录三个字词和词频
three_words=[]
three_words_num=[]
num=0
for three_word in words_list:if len(three_word[0])==3 and num<10 and three_word[0]!='实际上' and three_word[0]!='第一次':three_words.append(three_word[0])three_words_num.append(three_word[1])num+=1# 画图
plt.bar(three_words,three_words_num)
# 写上高度
for i in range(len(three_words)):plt.text(three_words[i],three_words_num[i],three_words_num[i],va="bottom",
ha="center")
plt.rcParams['font.sans-serif'] =['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.savefig('动物农场词频.png')
plt.show()

在这里插入图片描述

相关文章:

python实验16_网络爬虫

实验16&#xff1a;网络爬虫 1.实验目标及要求 &#xff08;1&#xff09;掌握简单爬虫方法。 2. 实验主要内容 爬取中国票房网 ① 爬取中国票房网&#xff08;www.cbooo.cn)2019年票房排行榜前20名的电影相关数据 代码部分: import time from selenium.webdriver impor…...

家长扫码查成绩

亲爱的老师&#xff0c;你是否曾为了如何让家长更方便地查询学生的成绩而烦恼&#xff1f;现在&#xff0c;我们为你介绍一款简单易用的成绩查询系统&#xff0c;让家长只需轻轻一扫&#xff0c;即可查看孩子的成绩。 一、什么是成绩查询系统&#xff1f; 成绩查询系统是一款专…...

【转】多台服务器共享session问题

多台服务器共享 session 问题 现在的大型网站中&#xff0c;如何实现多台服务器中的 session 数据共享呢&#xff1f; 当使用多台服务器架设成集群之后&#xff0c;我们通过负载均衡的方式&#xff0c;同一个用户&#xff08;或者 ip&#xff09;访问时被分配到不同的服务器上…...

页面置换算法的模拟实现及命中率对比

页面置换算法是用于管理计算机内存中页面&#xff08;或页面框&#xff09;的一种策略。常见的页面置换算法包括FIFO&#xff08;先进先出&#xff09;、LRU&#xff08;最近最少使用&#xff09;、LFU&#xff08;最少使用&#xff09;等。以下是一个简单的页面置换算法模拟实…...

说一说ajax的请求过程?

AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是一种通过在后台与服务器进行异步通信的技术&#xff0c;用于实现页面的局部更新和动态加载数据。下面是 AJAX 请求的一般过程&#xff1a; 1&#xff1a;创建 XMLHttpRequest 对象&#xff1a;在 JavaScript 中…...

leetcode 84. 柱状图中最大的矩形

84. 柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 1: 输入&#xff1a;heights [2,1,5,6,2,3] 输出&#xff1a;10 解释&…...

ubuntu 安装 gnome 安装 xrdp

先安装xrdp 更新 apt-get sudo apt-get update && apt-get upgrade安装图形包 apt-get install xubuntu-desktop安装 xrdp apt-get install xrdp安装 xfce4 apt-get install xfce4配置 xfce4 Add xfce to the xfce desktop window manager autorun by fixing the …...

微信小程序——后台交互

目录 后台准备 pom.xml 配置数据源 整合mtbatis 前后端交互 method1 method2 后台准备 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org…...

3D模型如何添加表面贴图?

1、模型表面贴图介绍 模型表面贴图&#xff08;Texture Mapping&#xff09;是一种将纹理映射到三维模型表面的技术&#xff0c;用于增加模型的细节和真实感。它通过在模型的每个表面点上应用纹理坐标&#xff0c;并将纹理像素与模型的对应点进行匹配&#xff0c;使得模型表面…...

C语言之函数详解

目录 函数的定义 函数的调用 变量的存储类型 auto自动变量 extern外部变量 static静态变量 register寄存器变量 函数的定义 在C语言中&#xff0c;函数是一段可重复使用的代码块&#xff0c;用于执行特定的任务。函数的定义包括函数的声明和函数体两个部分。 函数的声…...

华纳云:mysql创建触发器报错的原因及解决方法是什么

在 MySQL 中创建触发器时可能会出现错误&#xff0c;这些错误通常是由于多种原因引起的&#xff0c;包括语法错误、权限问题、表结构问题等。以下是一些常见的创建触发器报错的原因和相应的解决方法&#xff1a; 1. 语法错误&#xff1a; 原因&#xff1a; 创建触发器的SQL语句…...

C++笔记之初始化二维矩阵的方法

C笔记之初始化二维矩阵的方法 —— 2023年5月20日 上海 code review! 文章目录 C笔记之初始化二维矩阵的方法一.常见方法1. 使用数组2. 使用向量3. 使用数组的动态分配4. 使用嵌套的 std::vector 并使用resize方法5. 初始化固定大小的 std::array 二.C中使用vector初始化二维矩…...

ArrayList与List的层级关系及ArrayList解析

List与ArrayList的关系 List List是一个接口&#xff0c;不能直接实例化。如果要使用必须去实例化List的实现类——ArrayList和LinkedList站在数据结构的角度看&#xff0c;List就是一个线性表。常见的线性表&#xff1a;顺序表、链表、栈、队列等 线性表 线性表是n个具有相…...

智慧公厕设备选型攻略,打造智能化便利生活体验

智慧公厕设备的选型对于打造智能化便利生活体验起着至关重要的作用。在不断提升城市品质的背景下&#xff0c;智慧公厕已成为城市建设中的一项重要内容。在选购智慧公厕设备时&#xff0c;我们需要考虑到不同版本的功能要求&#xff0c;确保公厕设备的质量和性能。本文以智慧公…...

TCP 协议的可靠传输机制是怎样实现的?

TCP 协议是一种面向连接的、可靠的、基于字节流的传输层协议。 1 它通过以下几种方法来保证数据传输的可靠性&#xff1a; 检验和&#xff1a;TCP 在发送和接收数据时&#xff0c;都会计算一个检验和&#xff0c;用来检测数据是否在传输过程中发生了错误或损坏。如果检验和不匹…...

Antv G6入门之旅--combo图

目录 什么是AntV G6 G6 的特性 G6 文档 安装 1 在项目中使用 NPM 包引入 2 在 HTML 中使用 CDN 引入 使用 Step 1 创建容器 Step 2 数据准备 Step 3 创建关系图 Step 4 配置数据源&#xff0c;渲染 React 中使用 G6 Combo图 什么是AntV G6 G6 是一个图可视化引擎…...

聊聊分布式架构09——分布式中的一致性协议

目录 01从集中式到分布式 系统特点 集中式特点 分布式特点 事务处理差异 02一致性协议与Paxos算法 2PC&#xff08;Two-Phase Commit&#xff09; 阶段一&#xff1a;提交事务请求 阶段二&#xff1a;执行事务提交 优缺点 3PC&#xff08;Three-Phase Commit&#x…...

探索流视频的发送

1.网络连接 2.主设备将某处视频开始的视频数据发送给从设备。 之前有读取本地视频并播放的demo,所以可以先测试网络连接的问题。 先用模拟器进行模拟吧。方便进行测试。 是的&#xff0c;可以使用Android设备使用上述库或框架来构建实时Web应用程序。虽然这些库和框架在Java服…...

[ACTF2020 新生赛]Include 1

题目环境&#xff1a;超链接&#xff0c;点进去看看你能找到flag吗&#xff1f;除了这些网页什么都没有&#xff0c;但是不当紧&#xff0c;因为我们有一双善于发现的眼睛&#x1f440;F12瞅瞅无&#xff0c;并无其他等等URL看了吗&#xff1f;发现存在一个参数file&#xff0c…...

教师必备宝藏,强烈推荐

亲爱的教师朋友们&#xff0c;你们是不是在为学期末成绩查询而头疼呢&#xff1f;一学期下来&#xff0c;成堆的试卷和成绩单&#xff0c;还有学生家长的各种咨询&#xff0c;让人应接不暇。现在&#xff0c;我给你们分享一个教师必备的宝藏&#xff0c;让你们的成绩查询工作变…...

百度网盘直链解析工具:告别限速,3分钟实现全速下载!

百度网盘直链解析工具&#xff1a;告别限速&#xff0c;3分钟实现全速下载&#xff01; 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘那令人抓狂的下载速度而…...

片上变压器增益增强技术:原理、架构与毫米波IC设计实践

1. 项目概述&#xff1a;从“被动”到“主动”的增益革命在射频和毫米波集成电路设计的领域里&#xff0c;“增益”这个词的分量有多重&#xff0c;我想每一位从业者都深有体会。它直接关系到信号的传输距离、系统的灵敏度以及整个链路的噪声性能。传统的增益提升手段&#xff…...

STM32F405时钟树配置避坑指南:从HSE到APB,手把手教你算对每个外设时钟

STM32F405时钟树配置避坑指南&#xff1a;从HSE到APB&#xff0c;手把手教你算对每个外设时钟 在嵌入式开发中&#xff0c;时钟配置是STM32项目启动的第一步&#xff0c;也是最容易踩坑的环节之一。很多开发者虽然理解了时钟树的基本概念&#xff0c;但在实际项目中仍然会遇到外…...

Arm Compiler 6.19嵌入式开发工具链解析

1. Arm Compiler for Embedded 6.19版本深度解析Arm Compiler for Embedded 6.19是Arm公司于2022年10月12日发布的嵌入式C/C编译工具链。作为一款专为裸机软件、固件和实时操作系统(RTOS)应用开发设计的工具链&#xff0c;它提供了对Arm架构最新特性的支持。需要注意的是&#…...

告别电流畸变!手把手教你用PR调节器搞定开绕组电机零序电流(附Simulink仿真模型)

开绕组电机零序电流抑制实战&#xff1a;PR调节器参数整定与Simulink仿真指南 当开绕组永磁同步电机&#xff08;OEW-PMSM&#xff09;运行在考虑永磁体三次谐波反电动势的场景时&#xff0c;工程师们常会遇到一个棘手问题——三倍频零序电流导致的相电流畸变和转矩脉动。这种现…...

AzurLaneAutoScript:5分钟快速上手的碧蓝航线自动化脚本终极指南

AzurLaneAutoScript&#xff1a;5分钟快速上手的碧蓝航线自动化脚本终极指南 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript …...

热敏电阻测温实战:从原理到Arduino/CircuitPython代码实现

1. 项目概述&#xff1a;从电阻到温度的桥梁在嵌入式开发和电子DIY项目中&#xff0c;温度测量是一个极其常见的需求。无论是环境监测、设备状态反馈&#xff0c;还是简单的温控风扇&#xff0c;你都需要一个可靠的“温度计”。市面上有琳琅满目的温度传感器&#xff0c;从数字…...

抖音下载器技术架构解析:从零构建高效内容采集系统

抖音下载器技术架构解析&#xff1a;从零构建高效内容采集系统 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support.…...

1.解锁 Bootloader + 线刷 + 基带恢复,高通 EDL 模式自动化刷机(Python 脚本),解决黑砖 / Bootloop 难题

摘要 本文以工程化视角系统阐述主流品牌手机刷机维修的底层原理与标准化操作流程。覆盖高通、联发科、苹果A系列芯片平台的刷机协议、分区表结构、恢复模式触发机制及底层通信协议。提供可复现的Python自动化刷机脚本与adb/fastboot命令矩阵&#xff0c;解决变砖、Bootloop、基…...

关于光缆,这些事儿通信人一定要知道

随着5G网络的全面铺开和持续深耕&#xff0c;通信工程师的工作边界正在不断拓展。过去&#xff0c;后台网优工程师可能更多地专注于参数调整、信令分析和性能优化&#xff1b;而如今&#xff0c;越来越多的项目要求前后台协同作业&#xff0c;网优人员也需要熟悉现场施工规范&a…...