第一天学爬虫

news/2025/3/30 14:36:46/

阅读提示:我今天才开始尝试爬虫,写的不好请见谅。

一、准备工具

  • requests库:发送HTTP请求并获取网页内容。
  • BeautifulSoup库:解析HTML页面并提取数据。
  • pandas库:保存抓取到的数据到CSV文件中。

二、爬取步骤

  • 发送请求: 对于目标网页,使用requests.get()发送HTTP请求并获取网页的HTML内容。
  • 解析HTML: 使用BeautifulSoup解析网页,并寻找包含信息的HTML元素。
  • 提取数据: 找到合适的HTML标签和类名,提取信息。
  • 分页爬取: 如果网站有分页,可以在代码中处理分页逻辑,循环抓取每一页的数据。
  • 保存数据: 使用pandas或内置的文件写入功能,将抓取到的数据保存到CSV文件中。

三、爬虫代码

网页

<div class="pic"><em>1</em><a href="https://movie.douban.com/subject/1292052/"><img width="100" alt="肖申克的救赎" src="https://img3.doubanio.com/view/photo/s_ratio_poster/public/p480747492.webp"></a></div>
<div class="bd">                        
<p>                            
导演: 弗兰克·德拉邦特 Frank Darabont&nbsp;&nbsp;&nbsp;主演: 蒂姆·罗宾斯 Tim Robbins /...<br>                            
1994&nbsp;/&nbsp;美国&nbsp;/&nbsp;犯罪 剧情                        
</p><div>                            
<span class="rating5-t"></span>                            
<span class="rating_num" property="v:average">9.7</span>                            
<span property="v:best" content="10.0"></span>                            
<span>3148544人评价</span>                        
</div><p class="quote">                                
<span>希望让人自由。</span>                            
</p>                    
</div>

 爬虫代码:(我这里只爬虫了一部分)


from bs4 import BeautifulSoup
import requests
import pandas as pddef getFilm():try:# 添加请求头headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'}# 获取网页内容res = requests.get("https://movie.douban.com/top250?start=0&filter=",  headers=headers, timeout=10)res.encoding = 'utf-8'  # 修正编码设置# 解析网页soup = BeautifulSoup(res.text, 'html.parser')# 获取数据film_data=soup.find('div',class_='hd')if not film_data:print("未找到信息")print(res.status_code)  # 应该是200return Nonename=soup.find('span',class_='title').text.strip()score=soup.find('span',class_='rating_num').text.strip()word=soup.find('p',class_='quote')dictum=word.find('span').get_text()df=pd.DataFrame({'电影名':[name],'评分':[score],'寄语':dictum})return dfexcept Exception as e:print(f"发生错误: {e}")return Nonedef main():df= getFilm()  # 修正变量名if df is not None:print(df)  # 打印DataFrameelse:print("未能获取数据")if __name__ == '__main__':main()

四、拓展(设置请求头)

请求头(HTTP Headers)是客户端(如浏览器或爬虫)在发送 HTTP 请求时,附带的一组 键值对(Key-Value)信息,用于告诉服务器 你是谁、你想获取什么、以及如何返回数据

请求头字段示例值作用
User-AgentMozilla/5.0 (Windows NT 10.0; Win64; x64)告诉服务器你的浏览器或设备类型
Accepttext/html,application/xhtml+xml告诉服务器你希望接收的数据类型
Accept-Languagezh-CN,zh;q=0.9告诉服务器你希望返回的语言
Refererhttps://www.google.com/告诉服务器你从哪个页面跳转过来
Hostmovie.douban.com告诉服务器你要访问的域名
Cookiesessionid=abc123用于身份验证(如登录状态)
Connectionkeep-alive控制 TCP 连接是否保持
Accept-Encodinggzip, deflate告诉服务器你支持的压缩方式


 


http://www.ppmy.cn/news/1583456.html

相关文章

蓝桥杯刷题 Day 4 栈与链表

蓝桥杯刷题 Day 4 栈与链表 文章目录 蓝桥杯刷题 Day 4 栈与链表前言一、栈1. 解题思路2. 拆解代码&#xff08;不复杂&#xff0c;不拆了&#xff09; 二、链表1. 解题思路1.1 主函数1.2 自定义列表类1.2.1 插入操作1.2.2 删除操作1.2.3 按要求输出 三、 题后收获3.1 知识点 前…

python中的面对对象

目录 面向对象 类 对象 面向对象 面向对象编程&#xff08;Object-Oriented Programming, OOP&#xff09;是一种编程范式&#xff0c;Python是一种支持面向对象编程的多范式编程语言。在Python中&#xff0c;一切皆为对象&#xff0c;每个对象都拥有属性&#xff08;attri…

air780eq 阿里云

硬件&#xff1a;APM32F030C8 Air 780eq 参考文档&#xff1a; 合宙780E-4G模块通过AT指令连接到阿里云平台&#xff0c;实现信息的收发_air780e上传阿里云属性值at命令-CSDN博客 阿里云 - atair780eq - 合宙文档中心 4G模块接入阿里云-实现数据上传和命令下发_4g模块上传…

华为OD机试2025A卷 - 游戏分组/王者荣耀(Java Python JS C++ C )

最新华为OD机试 真题目录:点击查看目录 华为OD面试真题精选:点击立即查看 题目描述 2020年题: 英雄联盟是一款十分火热的对战类游戏。每一场对战有10位玩家参与,分为两组,每组5人。每位玩家都有一个战斗力,代表着这位玩家的厉害程度。为了对战尽可能精彩,我们需要…

深入解析SQL2API平台:数据交互革新者

在数字化转型持续深入的当下&#xff0c;企业对数据的高效利用与管理的需求愈发迫切。SQL2API平台应运而生&#xff0c;成为助力企业突破数据交互困境的有力工具&#xff0c;特别是它由麦聪软件基于DaaS&#xff08;数据即服务&#xff09;产品创新衍生而来&#xff0c;备受业界…

数据结构 单链表 数组模仿链表

数组模仿链表 因为普通的链表&#xff0c;每次新增&#xff0c;要重新创建变量&#xff0c;时间复杂度太高 所以我们算法题中可以用数组模拟链表 单链表 邻接表分为存储图&#xff0c;存储树 常见单链表 head->[val,next]->[val,next]->[val,next]->.....-&g…

PyTorch量化技术教程:第一章 PyTorch基础入门

PyTorch量化技术教程&#xff1a;PyTorch基础入门 本教程旨在为读者提供一套全面且深入的PyTorch技术在量化交易领域应用的知识体系。系统涵盖PyTorch基础入门、核心组件详解、模型构建与训练&#xff0c;以及在A股市场中的实战应用。采用理论与实战深度融合的讲解模式&#xf…

PgDog:一个PostgreSQL分布式集群中间件

PgDog 是一个实现了 PostgreSQL 分片、连接池以及负载均衡功能的中间。PgDog 使用 Rust 语言编写&#xff0c;支持跨平台&#xff08;Linux、Mac OS、Windows&#xff09;&#xff0c;具有高性能和高可靠性&#xff0c;可以在不需要修改任何应用程序的前提下实现 PostgreSQL 数…