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

python爬虫(一) ---- 静态html数据抓取

python爬虫 ---- 静态html数据抓取

  • 一、环境准备
  • 二、爬取思路
  • 三、代码
  • 四、结果展示

一、环境准备

  • 练习地址: https://ssr1.scrape.center/page/1
  • requests:发出请求
  • BeautifulSoup:解析html
  • pandas:保存数据到 csv文件
  • 依赖安装命令:
    pip install requests beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  • 永久指定镜像源配置见文章: python镜像源配置

二、爬取思路

  • 分析网站的html结构
  • 发出请求获取html
  • 解析html获取想要的内容
  • 存储解析后的数据

三、代码

import requests
from bs4 import BeautifulSoup
import pandas as pddef request(url):r = requests.get(url);return r.text;def parse(html):movie_list = [];soup = BeautifulSoup(html, 'lxml')for div in soup.find_all(name='div', attrs={'class': 'is-hover-shadow'}):movie_info = {};# 电影名h2 = div.find(name='h2', attrs={'class': 'm-b-sm'})movie_info['name'] = h2.text;# 电影类型category_list = [];for button in div.find_all(name='button'):category = button.find(name='span').textcategory_list.append(category);movie_info['categories'] = ",".join(category_list);# 地域, 时长, 上映时间info_list = [];for infoTag in div.find_all(attrs={'class': 'm-v-sm info'}):for spanTag in infoTag.find_all(name='span'):info_list.append(spanTag.text);movie_info['location'] = info_list[0];movie_info['duration'] = info_list[2];if len(info_list) == 4:movie_info['release_date'] = info_list[3][0:10];else:movie_info['release_date'] = '';# 评分score_tag = div.find(name='p', attrs={'class': 'score'});movie_info['score'] = score_tag.text.strip();movie_list.append(movie_info);return movie_list;def save(data):df = pd.DataFrame(data);# 设置表头df.columns = ['电影名', '类型', '地域', '时长', '上映时间', '评分'];df.to_csv("data.csv", index=False, encoding='utf-8-sig');if __name__ == '__main__':# 发出请求html = request('https://ssr1.scrape.center/page/1')print('获取html成功..')# 解析htmlmovie_list = parse(html);print('解析html成功..')# 存储数据save(movie_list)print('写入文件成功...')

四、结果展示

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/449202.html

相关文章:

  • 《剑指Offer:单链表操作入门——从“头删”开始破解面试》
  • 网站备案号怎么查询做设计私活的网站
  • 微信小程序入门学习教程,从入门到精通,WXS语法详解(10)
  • 深圳做网站公司哪家好在线绘画网站
  • CodeX CLI安装+MCP适配与VSCode部署(Win)
  • 手写MyBatis第95弹:异常断点精准捕获MyBatis深层BUG
  • 网站的结构是什么样的鹰潭律师网站建设
  • Rust多线程详解
  • tcp 服务器的设计思路
  • 基础架构安全和云原生安全的融合~K8S安全和传统安全~K8S和安全融合~综合安全大饼
  • Python全栈(基础篇)——Day05:后端内容(dict与set+while循环+for循环+实战演示+每日一题)
  • 建设网站用什么软件排版网站建设技术和销售工资
  • UNIX下C语言编程与实践31-UNIX 进程执行新程序:system 函数的使用与内部实现机制
  • 【Java核心技术/多线程】35道Java多线程面试题与答案
  • 【AI智能体】Coze 打造AI数字人视频生成智能体实战详解
  • 网站开发外键邯郸网站开发定制
  • FreeRTOS任务同步与通信--事件标志组
  • Excel基础知识 - 导图笔记
  • Flink 执行模式在 STREAMING 与 BATCH 之间做出正确选择
  • 杭州网站制作平台公司医院网站建设存在问题
  • Python中*args与**kwargs用法解析
  • 【大模型】多智能体架构详解:Context 数据流与工作流编排的艺术
  • 描述逻辑(Description Logic)对自然语言处理深层语义分析的影响与启示
  • python爬虫(三) ---- 分页抓取数据
  • 探索大语言模型(LLM):大模型微调方式全解析
  • 【学习笔记03】C++STL标准模板库核心技术详解
  • 做网站有什么关于财务的问题网络设计工作
  • P9751 [CSP-J 2023] 旅游巴士
  • 宠物用品网站开发背景网站推广设计
  • MySql复习及面试题学习