Python采集Top 250信息,看看谁最受欢迎~

Python实现定时任务,定时采集数据,定时执行脚本程序都可以 写后端的同学们可能都知道,工作中可能需要周期性执行一些任务,俗称定时任务。Linux环境下,可以借助于系统自带的crontab完成定时任务。但是很多时候,开发的同学们可能并没有权限去操作crontab,所以就催生了一些不太好的解决方案,比如基于Python/Java里面的Timer去弄一个周期性执行的工具。 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供 阅读详情

前言

嗨喽!大家好呀~这里是魔王

本次亮点:

  1. 分析网页结构
  2. css/xpath/re 解析数据
  3. 保存CSV文件

所使用环境介绍:

  • python 3.8
  • Pycharm

本次模块使用:

  • requests >>> 数据请求模块 pip install requests
  • parsel >>> 数据解析模块 pip install parsel
  • csv

模块安装问题:

如果安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
  2. 在pycharm中点击Terminal(终端) 输入安装命令

安装失败原因:

失败一: pip 不是内部命令

解决方法: 设置环境变量

失败二: 出现大量报红 (read time out)

解决方法:

因为是网络链接超时, 需要切换镜像源

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
例如:pip3 install -i https://pypi.doubanio.com/simple/ 模块名

失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入

解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可)

卸载一个就好或者你pycharm里面python解释器没有设置好

如何配置pycharm里面的python解释器?

  1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
  2. 点击齿轮, 选择add
  3. 添加python安装路径

pycharm如何安装插件?

  1. 选择file(文件) >>> setting(设置) >>> Plugins(插件)
  2. 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation
  3. 选择相应的插件点击 install(安装) 即可
  4. 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效

爬虫代码基本四个步骤:

  1. 发送请求 确定请求url地址

通过python代码模拟浏览器对于url地址发送请求

  1. 获取数据

获取服务器返回响应数据

  1. 解析数据

  2. 保存数据

代码

import requests  # 数据请求模块
import parsel  # 数据解析模块
import csv  # 保存csv文件

f = open('top250最终版本03.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '电影名',
    # '导演',
    # '主演',
    '演员信息',
    '年份',
    '国家',
    '电影类型',
    '评分',
    '评论量',
    '简介',
    '详情页',
])
csv_writer.writeheader()
# 1. 发送请求
for page in range(0, 250, 25):
    url = f'https://movie.douban.com/top250?start={page}&filter='
    # 请求头 字典数据类型, 构建完整键值对  对于一些基本没有什么反爬的网站, 不加请求头也可以
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36'
    }
    # 发送请求代码
    response = requests.get(url=url, headers=headers)  # <Response [200]>  200 状态码表示请求成功
    # 2. 获取响应对象的文本数据
    # print(response.text)  # 字符串数据类型
    # 3. 解析数据 提取我们想要数据内容 如果你想要直接对于字符串数据进行解析(提取) 只能用re正则
    selector = parsel.Selector(response.text)  # 把获取下来html字符串数据, 转成selector可解析的对象
    # print(selector)   <Selector xpath=None data='<html lang="zh-CN" class="ua-windows ...'>
    # css选择器: 就是根据标签属性内容,提取相关数据
    lis = selector.css('.grid_view li')  # 第一次提取, 获取所有li标签 返回列表
    for li in lis:  # 一个一个提取列表里面元素, 通过for循环遍历
        try:
            # span:nth-child(1) 选择第一个span标签
            # span:nth-child(1)::text 获取第一个span标签里面文本数据
            # span::text 也可以得到数据 get() 获取第一个标签里面 getall() 获取所有内容
            title = li.css('.hd a span::text').get()  # 电影名字
            info_list = li.css('.bd p:nth-child(1)::text').getall()
            # strip() 去除字符串左右两端空格  split 对于字符串数据分割返回列表 replace 替换
            # actor_list = info_list[0].strip().split('   ')
            # director = actor_list[0].replace('导演: ', '')  # 导演
            # actor = actor_list[1].replace('主演: ', '').replace('/...', '')  # 主演
            actor_list = info_list[0].strip().replace('导演: ', '').replace('主演: ', '')  # 演员信息
            info = info_list[1].strip().split(' / ')
            date = info[0]  # 年份
            country = info[1]  # 国家
            movie_types = info[2]  # 电影类型
            score = li.css('.rating_num::text').get()  # 评分
            comment = li.css('.star span:nth-child(4)::text').get().replace('人评价', '')  # 评论量
            summary = li.css('.inq::text').get() # 简介
            href = li.css('.hd a::attr(href)').get()  # 详情页
            dit = {
                '电影名': title,
                # '导演': director,
                # '主演': actor,
                '演员信息': actor_list,
                '年份': date,
                '国家': country,
                '电影类型': movie_types,
                '评分': score,
                '评论量': comment,
                '简介': summary,
                '详情页': href,
            }
            csv_writer.writerow(dit)
            print(title, actor_list, date, country, movie_types, score, comment, summary, href, sep=' | ')
        except Exception as e:
            print(e)

尾语

好了,我的这篇文章写到这里就结束啦!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

Pythia: A Customizable Hardware Prefetching Framework Using Online Reinforcement Learning——“预取”论文解读 参考传送门: 1. Hardware Prefetching笔记 2. 全球百科——缓存预取 3. 百度百科——缓存数据预期技术 目录0. 什么是Hardware Prefetching(本节内容不包括在论文中)1. 简介1.1 关于Hardware Prefetching的一些关键信息1.2 现阶段方法的缺陷1.3 论文团队的目标1.4 核心思想2. 必要的背景知识介绍2.1 强化学习(Reinforcement learning)2.2 为什么说强化学习是一个好的解决思路3. 解决方法与思路3.1 Py 阅读详情

相关推荐

FPGA远程升级避坑实录:用STARTUPE2原语搞定Flash时钟,K7325T实测有效

本文深入解析了FPGA远程升级中的STARTUPE2原语应用,特别针对K7325T芯片的Flash时钟问题提供了实测有效的解决方案。通过详细的原语工作机制、Vivado工程实现步骤及调试技巧,帮助工程师规避常见陷阱,提升远程升级的可靠性和效率。

weixin_42558093的博客 141

python 字典 根据value值排序, 获取top N个元素

python 字典 根据value值排序, 获取top N个元素 现有需求,求解字典中值top n个键值对。 实现代码如下: def sortedDictValues(adict): items = list(adict.items()) items.sort(key=lambda x:x[1],reverse=True) return [(key,value) for key, value in items] 测试案例调用方法: k_list = {1:25,3:100,6:50

Sun_Raiser的博客 4562

从FedAvg到实战:手把手教你用PyTorch复现联邦学习经典论文实验(MNIST/CIFAR-10)

本文详细介绍了如何使用PyTorch复现联邦学习经典算法FedAvg在MNIST和CIFAR-10数据集上的实验。从环境搭建、数据非IID划分到模型实现和参数聚合,手把手教你掌握联邦学习的核心技术与实战技巧,帮助开发者和研究人员快速实现隐私保护的分布式机器学习方案。

weixin_29053695的博客 256

监控linux机器负载脚本

top.sh & 每隔一分钟记录一次cpu负载情况到top.txt文件 #!/bin/bash while [ 1 ] do         top -b -n 1 |awk '/^top/||/Cpu/ {print}' >>top.txt         sleep 1m done top - 17:53:48 up 1 day,  3:44,  2 users,

小石头的专栏 522

modelsim软件安装教程及踩坑(极简版)

1.安装的网盘链接:链接:https://pan.baidu.com/s/1ltUfssyXlCnqDmLhWyhlwA提取码:jery 2.步骤(参考博文):https://blog.youkuaiyun.com/weixin_42693097/article/details/90523692?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163521788716780357213801%2522%252C%2522scm%2522%253A%2522

subtitle_的博客 3781

C51编程25-应用篇(单片机与电脑端实现wifi通讯)

单片机使用ESP-01S wifi模块与电脑端进行数据通讯。

qq_34343637的博客 1万+

linux下提取top命令字段信息,linux抓取top命令中数据的方法

top在linux中是一个非常直观的命令,可以清晰地看到各进程对资源的使用情况。但是如果你想从top命令展示中提取某些数据出来,如果想当然地使用这句命令:top|grep xxx就会被卡住,欲哭无泪。我们不妨查一下top这个命令,看看是否有其他办法来把数据抓出来。首先简单了解一下top这个命令。top是linux的一个性能分析工具,类似于windows的任务管理器。其最大特点有两个:动态、直观地显...

weixin_36150355的博客 1559

用python自动复制粘贴excel表里某一列的数据到另一个表中

昨天接到人事小姐姐求助减轻复制粘贴的重复工作量,分享一下代码 半路新手上路 耶 把 2.xlsx 表里的第二列 的数据复制粘贴到 test.xlsx的第一列 python3.6.2 from openpyxl import Workbook from openpyxl import load_workbook from openpyxl.writer.excel import Exc...

weixin_33854644的博客 2万+

Python通过字典(dict)中value获取前n个最大的元素方法及示例代码

本文主要介绍Python中,根据字典(Dictionary)中value的大小,来获取字典中获取前n个最大的元素的方法,以及相关的示例代码。 1、使用 collections.defaultdict实现 from collections import defaultdict pN ={'dave': 10, 'jacinta': 10, 'james': 8, 'john': 6, 'jack': 3, 'sam': 2} #交换key和value dct = defaultdict(list) for

Season 优快云博客 3285

Python 爬虫实战:拼多多商品评论情感分析(含词云生成与差评预警)

在电商行业竞争日益激烈的当下,商家对商品评论的分析需求愈发迫切。通过 Python 爬虫收集拼多多商品评论,并结合情感分析、词云可视化及差评预警技术,商家可精准洞察消费者反馈,优化商品与服务。本文将深度剖析从爬虫搭建到数据挖掘的关键环节,助力读者构建全流程电商评论分析系统。

yansideyucsdn的博客 1451

CARAFE轻量级上采样算子详解:从原理到YOLOv5/YOLOv8实战魔改全攻略

摘要: 本文探讨了CARAFE(内容感知特征重组)上采样算子在YOLOv5/YOLOv8目标检测模型中的应用。传统上采样方法(如最近邻插值)易丢失细节信息,而CARAFE通过内容自适应机制和大感受野特性,动态生成上采样核,显著提升小目标检测性能。文章详细解析了CARAFE的算法原理(核生成与特征重组两步),并提供了在YOLOv5/YOLOv8中集成的代码实现与配置修改方案。实验表明,引入CARAFE后模型mAP提升约0.6%,且保持轻量级优势。此外,文中还总结了训练调优技巧、部署优化方案及常见问题解决方法,

FJN110的博客 919

linux抓取top内容,linux抓取top命令中数据的方法

top在linux中是一个非常直观的命令,可以清晰地看到各进程对资源的使用情况。但是如果你想从top命令展示中提取某些数据出来,如果想当然地使用这句命令:top|grep xxx就会被卡住,欲哭无泪。我们不妨查一下top这个命令,看看是否有其他办法来把数据抓出来。首先简单了解一下top这个命令。top是linux的一个性能分析工具,类似于windows的任务管理器。其最大特点有两个:动态、直观地显...

weixin_39629780的博客 626

Python爬虫实战:高德地图POI信息爬取(餐馆/加油站等),附选址分析技巧

高德API配置AMAP_KEY = "你的高德API Key" # 替换成自己的Key# 爬取参数CITY = "成都" # 城市DISTRICTS = ["锦江区"] # 区域,可添加多个(比如["锦江区", "武侯区"])KEYWORDS_LIST = ["川菜馆", "加油站"] # 要爬取的POI类型TYPES = {"川菜馆": "050101", # 餐饮服务→中餐→川菜馆(高德POI分类编码)"加油站": "110100" # 交通设施→加油站。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2472

Python从入门到实战:爬虫与数据分析完整学习路径与代码示例

Python作为一门语法简洁、生态丰富的编程语言,已成为数据分析、网络爬虫和自动化等领域的核心技术工具。其核心原理在于通过简洁的语法结构和庞大的第三方库生态,让开发者能够高效处理数据采集、清洗、分析与可视化等任务。在技术价值上,Python降低了编程门槛,同时提供了Pandas、Matplotlib、Requests等成熟库,使得数据处理和网络请求变得简单高效。典型的应用场景包括从网站采集公开数据,然后使用Pandas进行结构化处理,再通过Matplotlib生成可视化图表,最终形成完整的数据分析报告。本文

weixin_30652491的博客 351

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Python兼职原来这么简单!

北京排名第一,上海排名第二(主要是金融行业),深圳排名第三,杭州超过了广州。 从市场整体需求来看,Python在招聘市场上的流行程度也是在逐步上升的,**工资水平也是水涨船高**。一张图可以看清现在Python的就业薪资:

m0_59162248的博客 163

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

又拿第一,编程语言界真正的“榜一大哥”

哈喽小伙伴们,Tiobe11月的编程语言排行榜虽迟但到!一起来看看吧

大模型研究中心 1085

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

linux 获取top数据库,linux抓取top命令中数据的方法

top在linux中是一个非常直观的命令,可以清晰地看到各进程对资源的使用情况。?但是如果你想从top命令展示中提取某些数据出来,如果想当然地使用这句命令:top|grep xxx就会被卡住,欲哭无泪。?我们不妨查一下top这个命令,看看是否有其他办法来把数据抓出来。?首先简单了解一下top这个命令。?top是linux的一个性能分析工具,类似于windows的任务管理器。其最大特点有两个:动态、...

weixin_35715235的博客 453

L1-041 寻找250(Python实现) 测试点全过

在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。对方不想和你说话,并向你扔了一串数……而你必须从这一串数字中找到“250”这个高大上的感人数字。输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”

m0_74101869的博客 744

Python中获取字典中最值对应的键

利用min(dict, key=dict.get) >>> d = {1:1, 2:0, 3:2} {1: 1, 2: 0, 3: 2} >>> min(d, key=d.get) 2 利用lambda函数 >>> min(d.items(), key=lambda x: x[1]) (2, 0) &g...

uncle_ll的博客 7419

python字典值排序并取出前n个key值

今天在写一个算法的过程中,得到了一个类似下面的字典: {'user1':0.456,'user2':0.999,'user3':0.789,user:'0.234'} 想要获取字典里value值前3的key,就产生了如下代码 直接贴代码: def order_dict(dicts, n): result = [] p = sorted([(k, v) for k, v in...

AbnerKou的博客 3万+

Python用于取top N的模块——heapq

Python有一个专门用于取前几大或前几小的模块,就是heapq,下面代码说明: >>> import heapq >>> list1=[2, 3, 3, 4, 7, 9] >>> nLargestList=heapq.nlargest(3,list1) >>> print nLargestList [9, 7, 4] >>> nSmallestList=heapq.nsmallest(3,li

Mr.Yan的专栏 4450

【Python】Python取top N相关的模块:heapq模块

最近在程序中需要取一个列表的top 3元素,就是去一个列表中数值最大的3个元素。这可以用Python的heapq模块来处理。 1、对列表取top N: 现在有一个列表myList,需要取出该列表的最大3个元素和最小3个元素,按如下代码所述的简单例子: test.py import heapq myList = [5, 2, 6, 12, 7, 3, 4, 9] topNum = 3 n

小怪孩的成长之路 1万+

python输出字典的前十项_Python:以值作为字典获取前n个键

快速回答分类工作:>>> dict(sorted(data.items(), key=lambda x: x[1]['score'], reverse=True)[:2]){'Shewag': {'out': 150, 'score': 12000},'sachin': {'out': 100, 'score': 15000}}分步您可以对项目进行排序:>>> ...

weixin_39637661的博客 5899

python中按value取字典中前n个最大或最小值

python中的字典是无序的,但是有时候会根据value值来取得字典中前n个值,本文思想是将字典转化成list,经过排序,取得前n个值,再将list转化回字典,代码如下: n = 2 a = {'a':9,'b':1,'c':5} L = sorted(a.items(),key=lambda item:item[1],reverse=True) L = L[:n] print(L...

u014662865的博客 3万+

定时任务(python)

• 自由度高:可以灵活计算下一次执行时间。• 无需额外依赖,原生 asyncio 就能跑。• 跟 Redis 结合很好,可以做跨进程/跨机器任务协调。• 手动管理定时逻辑(get_next_run_time + asyncio.sleep())。• 多任务可能不好管理,比如暂停/重启某个 job。• 不支持 cron 表达式等复杂调度。import osself.push_interval_seconds = 600 # 推送间隔时间。

JacinLee的博客 1216

Python网络爬虫实战——实验7:Python使用apscheduler定时采集任务实战

(1) 简介APScheduler(Advanced Python Scheduler)是一个用于 Python 的灵活的定时任务调度库。它允许您在应用程序中安排执行函数或方法,以便在指定的时间间隔、日期、天或其他规则触发它们。(2) 特点。

whwzzc的博客 1149
上一篇: 充满热点的美女“宅舞“视频每天都在更新,这不得批量爬下来慢慢看~
下一篇: python:如何对付无理取闹不给数据的浏览器,让它乖乖把数据交出来~
魔王不会哭
博客等级 码龄5年 6003粉丝 394原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值