爬虫学习。。。。

爬虫的概念:

爬虫是一种自动化信息采集程序或脚本,用于从互联网上抓取信息。 它通过模拟浏览器请求站点的行为,获取资源后分析并提取有用数据,这些数据可以是HTML代码、JSON数据或二进制数据(如图片、视频)。爬虫的用途广泛,包括但不限于收集数据、信息调查、刷流量与参与秒杀活动等。

爬虫在法律上是合法的,像菜刀一样,只要不拿来砍人就不违法。

爬虫的矛与盾

反爬机制

门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取。

反反爬策略

爬虫程序可以通过制定相关的策略或者技术手段,破解门户网站中具有的反爬机制,从而可以获取门户网站中相关的数据。

robots.txt协议

君子协议,指定网站中哪些数据可以被爬虫爬取,哪些数据不可以被爬取。防君子不防小人,只是一个协议。

一个简单的小爬虫程序

from urllib.request import urlopenurl = "http://www.baidu.com"
resp = urlopen(url)with open("mybaidu1.html", mode="w", encoding="utf-8") as f:f.write(resp.read().decode("utf-8"))
print("over!")

爬取百度的源代码并保存到mybaidu1.html文件中,执行结束返回over!

得到的文件:

 web请求过程分析

服务器渲染:在服务器那边直接把数据和HTML整合在一起,同一返回给浏览器。

就是客户端发送请求,服务端直接把请求内容返回过来,在源代码可看见请求内容。

客户端渲染:第一次只返回一个html骨架,第二次才返回数据。

客户端发送请求,但服务端只给一个html骨架,客户端再通过请求要数据,服务端才会发送数据,源代码看不到数据。

HTTP协议

协议: 就是两个计算机之间为了能够流畅的进行沟通而设置的一个君子协定.常见的协议有TCP/IPSOAP协议,HTTP协议,SMTP协议等等.

HTTP协议,Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:Worid Wide Web)服务器传输超文本到本地浏览器的传送协议,直白点儿,就是浏览器和服务器之间的数据交互遵守的就是HTTP协议.

HTTP协议把一条消息分为三大块内容.无论是请求还是响应都是三块内容:

请求:

1 请求行 ->请求方式(get/post) 请求url地址 协议
2 请求头 ->放一些服务器要使用的附加信息(可能包含反爬)
3 请求体-> 一般放一些请求参数

响应

1 状态行 -> 协议 状态码 200 302 404 500
2 响应头-> 放一些客户端要使用的一些附加信息
3 响应体 -> 服务器返回的真正客户端要用的内容(HTML,json)等


在后面我们写爬虫的时候要格外注意请求头和响应头,这两个地方一般都隐含着一些比较重要的内容.

比如:

 请求头中最常见的一些重要内容(爬虫需要):
1.User-Agent:请求载体的身份标识(用啥发送的请求)
2.Referer: 防盗链(这次请求是从哪个页面来的?反爬会用到)
3.cookie:本地字符串数据信息(用户登录信息,反爬的token)
响应头中一些重要的内容:
1.cookie: 本地字符串数据信息(用户登录信息,反爬的token)
2.各种神奇的莫名其妙的字符串(这个需要经验了,一般都是token字样,防止各种攻击和反爬)

requests模块

pip install requests   #执行命令安装

使用:

get请求

响应状态200,响应没有问题。

print(resp.text),查看网页内容,也就是源代码

import requestsurl = 'http://www.sogou.com/web?query=周杰伦'
resp = requests.get(url)print(resp)
print(resp.text)

 但是返回这样:

 检测到是爬虫程序,一个简单的反爬机制。

需要让服务端认为我们是正常用户,用到UA头来伪造自己的身份。

User-Agent

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:127.0) Gecko/20100101 Firefox/127.0

 这是我的UA头。

在请求里面加入一个headers,它的内容是UA。

 post请求

 实例三

爬取豆瓣电影的网址

豆瓣电影分类排行榜 - 喜剧片

https://movie.douban.com/typerank?type_name=%E5%96%9C%E5%89%A7&type=24&interval_id=100:90&action=

 由于太长了,写的不好看,进行封装.

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

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

相关文章

【类型转换】C++中char、char*、int、string相互转换函数及string转不同进制数函数

参考资料:cplusplus官方资料strtol 函数用法 总结: 1、这些在做编程题处理输入数据时常用,需要牢记。

vue 弹出消息框

为了体现更好的交互性,免不了会用到消息弹出功能,于是antd vue提供了很多可以使用的消息控件,比如Modal,message,Popover这些控件。下面就我用过的进行总结。 1. Modal.method() 方法: Modal.warning({title: 提示,content: 未完…

打造智能家居:用ESP32轻松实现无线控制与环境监测

ESP32是一款集成了Wi-Fi和蓝牙功能的微控制器,广泛应用于物联网项目。它由Espressif Systems公司开发,具有强大的处理能力和丰富的外设接口。下面我们将详细介绍ESP32的基础功能和引脚功能,并通过具体的实例项目展示其应用。 主要功能 双核处…

XSS+CSRF组合拳

目录 简介 如何进行实战 进入后台创建一个新用户进行接口分析 构造注入代码 寻找XSS漏洞并注入 小结 简介 (案例中将使用cms靶场来进行演示) 在实战中CSRF利用条件十分苛刻,因为我们需要让受害者点击我们的恶意请求不是一件容易的事情…

商业银行数据资产管理体系建设的实践与展望

随着数字经济的快速发展,数据已成为商业银行的核心资产。商业银行在数字化转型过程中,面临如何有效管理和利用海量数据资产的挑战。本文基于《商业银行数据资产管理体系建设实践报告》,探讨浦发银行、IBM和中国信息通信研究院在数据资产管理体…

DVWA - Brute Force

DVWA - Brute Force 等级:low ​ 直接上bp弱口令爆破,设置变量,攻击类型最后一个,payload为用户名、密码简单列表 ​ 直接run,长度排序下,不一样的就是正确的用户名和密码 ​ 另解: 看一下…

NSSCTF-Web题目8

目录 [LitCTF 2023]Http pro max plus 1、题目 2、知识点 3、思路 [NSSCTF 2022 Spring Recruit]babyphp 1、题目 2、知识点 3、思路 [LitCTF 2023]Http pro max plus 1、题目 2、知识点 http数据包头部字段 3、思路 打开题目 第一想法就是加上X-forwarded-for字段 …

一分钟搭建新生录取查询系统

小伙伴们,新学期就要开始了,招生老师们,你们准备好迎接新生了吗?我给老师们分享一个超级实用的小技巧——如何用快速搭建一个新生录取查询系统! 准备好录取名单的电子表格,记得包含“姓名”和“手机号”这样…

【LeetCode 5.】 最长回文子串

一道题能否使用动态规划就在于判断最优结构是否是通过最优子结构推导得到?如果显然具备这个特性,那么就应该朝动态规划思考。如果令dp[i][j]表示串s[i:j1]是否是回文子串,那么判断dp[i][j] 是否是回文子串,相当于判断s[i] 与 s[j]…

AI企业盈利与成本问题

一、AI技术成本超预期,初创公司财务压力凸显 近期,AI领域的一些初创公司正面临财务压力,外媒记者亚伦费尔南德斯认为这可能标志着AI热潮时期即将结束。自3月中旬以来,包括Inflection AI、Stability AI和Anthropic在内的几家公司均…

函数指针的使用是否必须需要加符号?

在C或C等编程语言中,函数指针是一种特殊的指针类型,它用来指向一个函数。使用函数指针时,通常不需要在函数名后面加 & 符号。函数指针的声明和使用通常遵循以下规则: 1.声明函数指针:声明一个函数指针时&#xff…

Python中的TXT文档处理:导出与读取

Python中的TXT文档处理:导出与读取 在数据处理和分析中,文本文件(尤其是TXT和CSV格式)经常被用作数据交换的标准格式。本文将详细探讨如何在Python中处理TXT文件,包括如何导出和读取TXT文档,以及与CSV格式…

可视化大屏:选了浅色系,结果悲剧了

某些时候,有些客户不听劝告,感觉深色系大屏过于压抑,就让用浅色系,结果浅色系投到大屏上,直接亮瞎了。 选择浅色系的可视化大屏可能会存在以下几个问题: 视觉疲劳: 浅色系的颜色相对较亮&…

MySQL的引擎InnoDB和MyISAM有什么区别

一、典型回答 InnoDB和MyISAM是MySQL中比较常用的两个执行引擎,MySQL在5.5之前版本默认存储引擎是MyISAM,5.5之后版本默认存储引擎是InnoDB,MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及涉及安全性较高的应用。 如果…

极限编程里最容易被忽略的实践

在前面的一篇文章里面我和大家聊过了极限编程的重要性,今天想和大家聊聊极限编程里面最简单但也往往最容易被忽略的实践——编码规范。 说到编码规范,每一个开发人员都非常熟悉,每一个团队也都有自己的编码规范。但实际的执行情况如何呢&…

深圳信用贷款之路:申请了10次都被拒!这三步帮你逆袭银行贷款!

贷款客户最头疼的就是明明查询了一堆资料,贷款还是办不下来!尤其是那些负债累累的,急需资金还月供和本金的朋友们,不是在贷款就是在贷款的路上,一个月申请了10次都被拒!去了好几家贷款机构,费用…

数据库开发-MySQL

前言 首先来了解一下什么是数据库。 数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库。 像我们日常访问的电商网站京东,企业内部的管理系统OA、ERP、CRM这类的系统,以及大家每天都会刷的头条、抖音类的app…

中科院推出的三大免费神器,值得焊死在你的电脑上!

紫东太初:强大的中文预训练语言模型平台 紫东太初是中科院推出的中文预训练语言模型平台,具备强大的自然语言处理能力,支持文本生成、分类和摘要等多种任务。 核心功能 文本生成:通过输入关键词或短语,生成相关的文…

文字游侠:一款全新AI写作模型,每天10分钟一键创作爆文!附渠道和玩法教程!

在当今快节奏的社会中,虽然传统的工作可以满足我们基本的物质需求,但许多人内心深处渴望的是更高层次的精神满足。这就像是我们常说的:“工资可以喂饱肚子,副业可以养活灵魂。”这并不是鼓励大家辞去日常工作,而是提倡…

美国铁路客运巨头Amtrak泄漏旅客数据,数据销毁 硬盘销毁 文件销毁

旅客的Guest Rewards常旅客积分账户的个人信息被大量窃取。 美国国家客运铁路公司(Amtrak)近日披露了一起数据泄露事件,旅客的Guest Rewards常旅客积分账户的个人信息被大量窃取。 根据Amtrak向马萨诸塞州提交的泄露通知,5月15日…