爬虫学习。。。。
爬虫的概念:
爬虫是一种自动化信息采集程序或脚本,用于从互联网上抓取信息。 它通过模拟浏览器请求站点的行为,获取资源后分析并提取有用数据,这些数据可以是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=
由于太长了,写的不好看,进行封装.
相关文章:
![](https://img-blog.csdnimg.cn/direct/16c1a267ff3c4fd39ba3680ab123b606.png)
爬虫学习。。。。
爬虫的概念: 爬虫是一种自动化信息采集程序或脚本,用于从互联网上抓取信息。 它通过模拟浏览器请求站点的行为,获取资源后分析并提取有用数据,这些数据可以是HTML代码、JSON数据或二进制数据(如图片、视频)…...
![](https://img-blog.csdnimg.cn/direct/88078b5fce7e4ca7b252785b840c58e6.jpeg)
美国铁路客运巨头Amtrak泄漏旅客数据,数据销毁 硬盘销毁 文件销毁
旅客的Guest Rewards常旅客积分账户的个人信息被大量窃取。 美国国家客运铁路公司(Amtrak)近日披露了一起数据泄露事件,旅客的Guest Rewards常旅客积分账户的个人信息被大量窃取。 根据Amtrak向马萨诸塞州提交的泄露通知,5月15日…...
![](https://img-blog.csdnimg.cn/img_convert/4c429504b7492308e8abcd002cab47e8.png)
LabVIEW与Matlab联合编程的途径及比较
LabVIEW和Matlab联合编程可以通过多种途径实现,包括调用Matlab脚本节点、使用LabVIEW MathScript RT模块、利用ActiveX和COM接口,以及通过文件读写实现数据交换。每种方法都有其独特的优势和适用场景。本文将详细比较这些方法,帮助开发者…...
![](https://img-blog.csdnimg.cn/direct/84f4e601e5eb44c0902ffe902443bfa3.png)
秋招突击——6/16——复习{(单调队列优化DP)——最大子序和,背包模型——宠物小精灵收服问题}——新作{二叉树的后序遍历}
文章目录 引言复习(单调队列优化DP)——最大子序和单调队列的基本实现思路——求可移动窗口中的最值总结 背包模型——宠物小精灵收服问题思路分析参考思路分析 新作二叉树的后续遍历加指针调换 总结 引言 复习 (单调队列优化DP)…...
![](https://img-blog.csdnimg.cn/direct/31abfbc50d3c4bd09ce2dffae6cdeaca.png)
SAR动目标检测系列:【4】动目标二维速度估计
在三大类杂波抑制技术(ATI、DPCA和STAP)中,STAP技术利用杂波与动目标在二维空时谱的差异,以信噪比最优为准则,对地杂波抑制的同时有效保留动目标后向散射能量,有效提高运动目标的检测概率和动目标信号输出信杂比,提供理…...
![](https://img-blog.csdnimg.cn/direct/c943572ba5984664a99ee73f3d18b519.png)
JavaEE多线程(2)
文章目录 1..多线程的安全1.1出现多线程不安全的原因1.2解决多线程不安全的⽅法1.3三种典型死锁场景1.4如何避免死锁问题2.线程等待通知机制2.1等待通知的作用2.2等待通知的方法——wait2.3唤醒wait的方法——notify 1…多线程的安全 1.1出现多线程不安全的原因 线程在系统中…...
![](https://img-blog.csdnimg.cn/img_convert/8b3d8a989ff49fcf6c503c87e821f06c.jpeg)
中新赛克两款数据安全产品成功获得“可信数安”评估测试证书
6月19日,2024数据智能大会在北京盛大召开。 会上,中国2024年上半年度“可信数安”评估测试证书正式颁发。中新赛克两款参评产品凭借过硬的技术水准和卓越的应用效果,成功获得专项测试证书。 2024年上半年度“可信数安”评估测试通过名单 中新…...
![](https://img-blog.csdnimg.cn/direct/0584ce142d664d68a0e7bd4a0eef5b5e.png)
代码随想录——分割回文串(Leetcode 131)
题目链接 回溯 class Solution {List<List<String>> res new ArrayList<List<String>>();List<String> list new ArrayList<String>();public List<List<String>> partition(String s) {backtracking(s, 0);return res;}p…...
![](https://www.ngui.cc/images/no-images.jpg)
Rust 学习方法及学习路线汇总
Rust 学习方法及学习路线汇总 Rust 是一种系统编程语言,旨在提供安全性、并发性和高性能。它是由 Mozilla 公司开发的,于 2010 年首次发布。Rust 能够帮助开发者编写可靠和高效的软件,因此受到了广泛的关注和认可。 如果你有兴趣学习 Rust&…...
![](https://img-blog.csdnimg.cn/img_convert/0185fb9ff867c929e49a813c41046464.jpeg)
一名女DBA的感谢信,到底发生了什么?
昨日我们收到这样一通来电 “早上九点刚上班便收到业务投诉电话,系统卡顿,接口失败率大增,怀疑数据库问题。打开运维平台发现是国产库,生无可恋,第一次生产环境遇到国产库性能问题,没什么排查经验…...
![](https://img-blog.csdnimg.cn/img_convert/aa2581dee9e4761d31f2389eaeac1932.png)
群晖NAS本地部署并运行一个基于大语言模型Llama2的个人本地聊天机器人
前言 本文主要分享如何在群晖 NAS 本地部署并运行一个基于大语言模型 Llama 2 的个人本地聊天机器人并结合内网穿透工具发布到公网远程访问。本地部署对设备配置要求高一些,如果想要拥有比较好的体验,可以使用高配置的服务器设备. 目前大部分大语言模型的产品都是基于网络线上…...
![](https://img-blog.csdnimg.cn/direct/dc8db1bd3e9e40a2b510e10f69cf8341.png)
HarmonyOS模拟器(phone-x86-api9)一直卡顿的解决方法
在DevEco Studio 3.1.1 Release版本中的Device Manager中创建本地的模拟器,创建phone-x86-api9模拟器成功,但是启动该新建的模拟器一直显示"HarmonyOS"logo图片,然后一直卡在这里,运行结果如下所示: 检查模…...
![](https://www.ngui.cc/images/no-images.jpg)
排序题目:有序数组的平方
文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:有序数组的平方 出处:977. 有序数组的平方 难度 2 级 题目描述 要求 给定按非递减顺序排序的整…...
![](https://img-blog.csdnimg.cn/direct/fcacf79a44e14ba79e14607054a75f15.png)
PPT可以转换成Word吗?归纳了三种转换方式
PPT可以转换成Word吗?在当今快节奏的工作和学习环境中,不同格式文件之间的转换变得日益重要。PPT作为演示文稿制作的首选工具,广泛应用于会议演讲、教育培训等多个场景,而Word则是文档编辑与编排的基石。为了便于进一步编辑、分享…...
![](https://img-blog.csdnimg.cn/direct/49411b52d03f4b7cab8ca8a02bdde340.png)
分布式锁三种方案
基于数据库的分布式锁(基于主键id和唯一索引) 1基于主键实现分布式锁 2基于唯一索引实现分布式锁 其实原理一致,都是采用一个唯一的标识进行判断是否加锁。 原理:通过主键或者唯一索性两者都是唯一的特性,如果多个…...
![](https://img-blog.csdnimg.cn/direct/6f9fdb7f000f40dba055fb02f4f2148c.png)
【HarmonyOS NEXT】har 包的构建生成过程
Har模块文件结构 构建HAR 打包规则 开源HAR除了默认不需要打包的文件(build、node_modules、oh_modules、.cxx、.previewer、.hvigor、.gitignore、.ohpmignore)和.gitignore/.ohpmignore中配置的文件,cpp工程的CMakeLists.txt,…...
![](https://www.ngui.cc/images/no-images.jpg)
从0开发一个Chrome插件:项目实战——翻译插件(附带申请谷歌翻译、百度翻译教程)
前言 这是《从0开发一个Chrome插件》系列的第十八篇文章,本系列教你如何从0去开发一个Chrome插件,每篇文章都会好好打磨,写清楚我在开发过程遇到的问题,还有开发经验和技巧。 专栏: 从0开发一个Chrome插件:什么是Chrome插件?从0开发一个Chrome插件:开发Chrome插件的必…...
![](https://img-blog.csdnimg.cn/img_convert/46c6725b910e5a2dc2806b0427440ff1.webp?x-oss-process=image/format,png)
查看nginx安装/配置路径,一个服务器启动两个nginx
查看nginx安装/配置路径 查看nginx的pid: ps -ef | grep nginx查看pid对应服务的启动路径 ll /proc/2320/exe使用检查配置文件命令,查看配置文件位置 /usr/local/nginx/sbin/nginx -t一个服务启动两个nginx 拷贝一份程序,cpbin是我自己创…...
![](https://www.ngui.cc/images/no-images.jpg)
JavaScript中 Map与reduce的应用
1. Map:映射新世界 Map构造函数创建一个新Map对象,它允许你以键值对的形式存储数据,提供了一种更加灵活的数据结构。与传统的对象相比,Map允许任何值(包括对象)作为键,而且具有更好的性能表现。…...
![](https://www.ngui.cc/images/no-images.jpg)
1688商品详情API:一键解锁海量批发数据
引言 1688作为阿里巴巴旗下的B2B交易平台,拥有庞大的商品数据库和丰富的供应商资源。对于想要获取商品详细信息的开发者和企业而言,1688提供的API接口是获取一手数据的关键途径。本文将详细介绍如何使用1688商品详情API,包括注册、获取API密…...
![](https://img-blog.csdnimg.cn/direct/da7161ba1d224a1bbc573a4d9616723b.png)
C#结合JS 修改解决 KindEditor 弹出层问题
目录 问题现象 原因分析 范例运行环境 解决问题 修改 kindeditor.js C# 服务端更新 小结 问题现象 KindEditor 是一款出色的富文本HTML在线编辑器,关于编辑器的详细介绍可参考我的文章《C# 将 TextBox 绑定为 KindEditor 富文本》,这里我们讲述在…...
![](https://img-blog.csdnimg.cn/img_convert/9eb6b62f0cc39d4e8c5461e92bb8a216.png)
二开的精美UI站长源码分享论坛网站源码 可切换皮肤界面
二开的精美UI站长源码分享论坛网站源码 可切换皮肤界面 二开的精美UI站长源码分享论坛网站源码 可切换皮肤界面...
![](https://img-blog.csdnimg.cn/direct/2ef442da7f4540d4823f373ee744bf6e.png)
【diffusers极速入门(三)】生成的图像尺寸与 UNet 和 VAE 之间的关系
先上结论,一句话总结即: SD 图片的输入\输出尺寸(高或宽) Unet 输入\输出的样本尺寸(高或宽) x VAE 的缩放尺寸 在使用生成模型时,特别是图像生成任务中,理解 UNet 和 VAE…...
![](https://img-blog.csdnimg.cn/direct/4013030d323643e68ab88f011d098066.png)
react实现窗口悬浮框,可拖拽、折叠、滚动
1、效果如下 2、如下两个文件不需要修改 drag.js import React from "react"; import PropTypes from "prop-types";export default class DragM extends React.Component {static propTypes {children: PropTypes.element.isRequired};static defaultP…...
![](https://img-blog.csdnimg.cn/direct/972a9c2e536344d3ada8f270a34648f3.png)
52【场景作图】空间感
参考 场景绘制,画面空间感如何拉开?分分钟就能学会的场景优化思路更新啦!_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1pa411J7Ps/?spm_id_from333.337.search-card.all.click&vd_source20db0c4e2d303527ed13c4b9cdf698ec 1 …...
![](https://img-blog.csdnimg.cn/direct/1bfff312e3f0499096e1cbf1297a3cd8.png)
SpringBoot系列之搭建WebSocket应用
SpringBoot系列之ServerEndpoint方式开发WebSocket应用。在实时的数据推送方面,经常会使用WebSocket或者MQTT来实现,WebSocket是一种不错的方案,只需要建立连接,服务端和客户端就可以进行双向的数据通信。很多网站的客户聊天&…...
![](https://img-blog.csdnimg.cn/direct/815b1661c5b848c6b1e159ee3f39ee88.png)
RK3568技术笔记十四 Ubuntu创建共享文件夹
单击“虚拟机”,单击“设置”,如图所示: 单击“选项”,选择“总是启用(E)”,单击“添加”,如图所示: 单击“下一步”,如图所示: 单击“浏览”添加…...
![](https://www.ngui.cc/images/no-images.jpg)
JavaScript 获取地理位置 Geolocation
在现代的 web 应用程序中,获取用户的地理位置信息是一项常见的需求。这可以用于提供个性化内容、本地化服务或者基于位置的功能。HTML5 引入了 Geolocation API,使得从浏览器中获取地理位置信息变得非常简单。 1. Geolocation API 简介 Geolocation AP…...
![](https://img-blog.csdnimg.cn/direct/e28e5c09b5724093bbccd4930bd57cb4.png)
android串口助手apk下载 源码 演示 支持android 4-14及以上
android串口助手apk下载 1、自动获取串口列表 2、打开串口就开始接收 3、收发 字符或16进制 4、默认发送at\r\n 5、android串口助手apk 支持android 4-14 (Google seral port 太老) 源码找我 需要 用adb root 再setenforce 0进入SELinux 模式 才有权限…...
![](https://img-blog.csdnimg.cn/direct/a56a43085fb945a8a56e8bf077b4b74f.png)
windows11 生产力工具配置
一、系统安装 官方windows11.iso镜像文件安装操作系统时,会强制要求联网验证,否则无法继续安装操作系统,跳过联网登录账号的方式为:按下【shiftF10】快捷键,调出cmd命令窗口,输入命令 OOBE\BYPASSNRO 等…...
![](/images/no-images.jpg)
网站设计标注图用什么做的/公司企业员工培训
插值:在已知数据之间计算估计值的过程。1. 一维插值(1D Interpolation)由interp1实现,用多项式技术计算插值点。Yiinterp1(x,y,xi,method)y—函数值矢量, x—自变量取值范围,xi—插值点的自变量矢量,Method…...
![](/images/no-images.jpg)
哈尔滨网站备案手续费/北京seo优化技术
说明:Ajax是无法实现文件传输的,本文只是模拟了Ajax不刷新页面就可以请求并返回数据的效果。实质上还是通过提交form表单来返回文件流的输出。分步实现逻辑:ajax请求服务器,访问数据库,根据查询到的数据生成一个数据文…...
![](/images/no-images.jpg)
盐城个人网站建设/株洲网页设计
线程同步基础 并发场景下,有时我们并不仅仅想保护数据,我们还希望多个线程之间同步某些操作,例如等待某个条件为真或者某个事件发生时执行一些操作。C标准库提供了条件变量(condition variables)和futures;…...
![](/images/no-images.jpg)
淘宝 客要推广网站怎么做/网站建设服务
/*这题是使用了动态规划算法,思路很是巧妙动态规划的思路讲解,这个博客比较详细:http://blog.csdn.net/metaphysis/article/details/6566478代码的简洁优雅,这个博客更胜一筹:http://blog.csdn.net/keshuai19940722/ar…...
![](https://s1.51cto.com/attachment/201311/000241586.png)
响应式布局网站开发/湖南百度推广公司
24.计划报表进入报表区,定位到“Microsoft Generic Report Library”,选中“可用性”,点击右侧窗口的“计划”填写描述,传递方法、计划报告名称和存放计划报告的路径、呈现格式、写入模式,订阅报表的用户名和密码&…...
![](https://images2017.cnblogs.com/blog/917633/201801/917633-20180118110928896-1308801228.png)
金寨县建设规划局网站/必应搜索引擎入口
1.同步的前提 多个线程 多个线程使用的是同一个锁 2.同步的好处 同步的出现解决了多线程的安全问题 3.同步的弊端 当线程较多时, 因为每个线程都会去判断同步上的锁, 这样是很耗费资源的, 会降低程序的运行效率. 4.同步方法: 1.就是将同步关键字, synchronized加到方法上, 此时…...