Python爬虫(1-4)-基本概念、六个读取方法、下载(源代码、图片、视频 )、user-agent反爬

news/2024/11/16 21:28:07/文章来源:https://www.cnblogs.com/lxxa/p/18295189

Python爬虫

一、爬虫相关概念介绍

1.什么是互联网爬虫

如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据

解释1:通过一个程序,根据URL进行爬取网页,获取有用信息
解释2:使用程序模拟浏览器,去向服务器发送请求,获取响应信息

2.爬虫核心

  • 爬取网页:爬取整个网页,包含了网页中所有的内容
  • 解析数据:将网页中你得到的数据进行解析,也就是找到你所需要的数据
  • 难点:爬虫和反爬虫之间的博弈。即“抓取数据”和”拒绝给你数据”之间的博弈

3.爬虫分类

  • 通用爬虫
  • 聚焦爬虫

根据需求,实现爬虫程序,抓取需要的数据

设计思路

1.确定要爬取的url
如何获取Url
2.模拟浏览器通过http协议访问url,获取服务器返回的html代码
如何访问
3.解析html字符串(根据一定规则提取需要的数据)
如何解析

4.urllib库使用

二、一个类型and六个方法

HTTPResponse类型

表示从服务器接收到的 HTTP 响应的对象类型,通常在处理网络请求时使用。它包含了服务器返回的各种信息,如状态码、响应头和响应体

  • read()
  • readline() 只读取一行
  • readlines() 读取多行
  • getcode() 获取状态码
  • geturl()
  • getheaders() 获取状态信息

三、下载

下载网页

#下载网页
url_page='http://www.baidu.com'
urllib.request.urlretrieve(url_page,'baidu.html')

下载图片

通过“复制图像链接”获取图片的存取路径,注意urlretrieve()函数里要对应好文件格式

#下载图片
url_img='https://ww1.sinaimg.cn/mw690/007SWX7Ugy1hr6kqd0netj32wi4crqve.jpg'
urllib.request.urlretrieve(url_img,'zhouyiran.jpg')

下载视频

鼠标右击选择“检查”

# 下载视频
url_video='https://vdept3.bdstatic.com/mda-pi79hyfq8jscww7u/360p/h264/1694155424021989258/mda-pi79hyfq8jscww7u.mp4?v_from_s=hkapp-haokan-hbf&auth_key=1720607496-0-0-d017b040f470523698685d8261770983&bcevod_channel=searchbox_feed&pd=1&cr=0&cd=0&pt=3&logid=1896481070&vid=10142877359436078513&klogid=1896481070&abtest=101830_2-102148_1-17451_2-3000225_3'
urllib.request.urlretrieve(url_video,'zhou.mp4')

四、请求对象的定制(user-agent反爬)

HTTPHTTP以明文形式传输数据,数据在传输过程中没有加密,容易被中间人截获和篡改。
HTTPSHTTPS使用SSL/TLS协议对数据进行加密,确保数据在传输过程中是安全的,即使被截获也无法轻易解密

user-agentHttp协议中的一部分,属于头域的组成部分,User Agent也简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通过这个标识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计;例如用手机访问谷歌和电脑访问是不一样的,这些是谷歌根据访问者的UA来判断的。UA可以进行伪装。

URL的组成

首先找到百度首页的user-agent

然后用以下代码进行反爬

import urllib.requesturl='https://www.baidu.com'# 构造字典
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:127.0) Gecko/20100101 Firefox/127.0'
}# 因为参数位置不对应,所以要写明参数名,再写参数值
request=urllib.request.Request(url=url,headers=headers)# 进行包装后再读取
response=urllib.request.urlopen(request)content=response.read().decode('utf-8')print(content)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/741980.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一条SQL查询语句是如何执行的??

我想来跟你聊聊 MySQL 的基础架构。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在…

2024最新404错误页面单页源码 HTML错误页面代码

简介:2024最新404错误页面单页源码 HTML错误页面代码 点击下载

高仿imtoken钱包源码/获取助记词/获取私钥/自动归集

简介:高仿imtoken钱包/获取助记词/获取私钥/自动归集 带双端,无纯源码 下载源码

LLM大模型: 常用的数据清洗方法总结

LLM的三大要素:算力:算力的本质是拼财力,普通人是无力改变的; 算法/模型结构:目前最流行的还是transformer架构, 各种LLM都是基于transformer改细节,暂时没有用新的框架替代transformer。至于后续manba会不会替代transformer架构,有待观察! 数据:这块是做LLM pre-tra…

docker部署若依开源java项目微服务版

查看容器IDdocker ps 后面以进入mysql容器为例 进入容器sudo docker exec -it 27e /bin/bash 进入成功,由于是mgsql容器,我们可以输入命令操作看一下mysql文件夹,如下看到了我们建的数据库:退出容器回到centosexit

【考研数学】大家喜欢这种用不同颜色标记解题思路的方式嘛?

今天要给大家分享的笔记是:《如何确定行列式展开式中有效项的个数?》,大家喜欢类似下面这样在文章中用不同的文字颜色和背景颜色对计算推导过程中需要注意的不同部分做高亮显示嘛?可以在下方留言哦 >_< 原文:如何确定行列式展开式中有效项的个数? - 荒原之梦 (zhao…

大气热力学(12)——强对流指数之一(能量参数)

从本篇文章开始,都不是我原有手写笔记上的内容,都是全新添加的内容。本篇文章介绍了根据预报员多年经验总结的各种强对流预报指数,希望这部分内容能对你有所帮助。 @目录12.1 对流有效势能(CAPE)12.1.1 CAPE的概念与相关公式12.1.2 CAPE与上升气块的起始高度的关系12.1.3 …

苍穹外卖 - day1

1.项目介绍 业务功能技术选型环境搭建前端 前端部分非重点,直接由平台提供,部署在nginx服务器上。nginx概念反向代理与负载均衡动态监听80端口,将请求转发到目标服务器,若有多个目标服务器,则采取负载均衡策略进行请求的分发(如轮询)接口文档 1. YApi 通过上传json文件或…

2024最新Zibll子比主题V7.7版本源码 开心版 | WordPress主题

简介: 2024最新Zibll子比主题V7.7版本源码 开心版 | WordPress主题 安装教程在压缩包内V7.7更新日志: 新功能新增数字翻页输入页码跳转的功能(注:总页数超过 8 页才会显示) 新增后台批量设置文章阅读量、点赞数、显示布局等文章扩展功能 新增后台批量设置论坛帖子阅读量、置…

成为MySQL DBA后,再看ORACLE数据库(十三、物理备份)

前面总结了ORACLE的逻辑备份,本文来总结以下ORACLE的物理备份。数据库的备份一般分为冷备份和热备份,其中冷备份是指将数据库彻底关闭后进行的一致性备份,由于需要关停数据库所以在实际应用中很少用到冷备份。而热备份是指在数据库运行的同时对数据库进行备份,本文主要总结…

开源流程表单设计器都有哪些值得一提的优势?

通过本文,可以随时来了解开源流程表单设计器的优势。如果需要提质、增效、降本,不妨来了解下低代码技术平台、开源流程表单设计器的功能和优势特点。想要实现流程化办公,低代码技术平台是助力增效的理想工具。功能灵活、操作方便、好维修、可视化操作等优势都是其深受行业喜…

玩机社区系统源码 | 2024年最美社区源码 全开源 带后端

简介:玩机社区系统源码 | 2024年最美社区源码 全开源 带后端 图片: 点击下载