| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 爬虫入门(1) 2021-11-15 -> 正文阅读 |
|
[网络协议]爬虫入门(1) 2021-11-15 |
写在前面: ? ? ? ? 本文以及今后可能发布在本专栏的文章,实际为本人的学习内容输出,写作流程为学习后笔记记录,记录之后整理用尽可能不同的语言作输出,由于笔者水平有限,本专栏仅能看作小白的学习历程,如果能对读者朋友有丝毫微不足道的帮助,笔者欣喜难表。将自己当天或数天学习内容以博客形式做二次输出为本学期以来一直想做但搁置的事,现开始付诸实践,若文章内容有所不妥,还望告知,感激不尽。更新频率希望能保证一周三更以上(作为自我挑战立下的flag),以后“写在前面”可能以“发些牢骚”的形式出现,分享部分当日感想,趣事,或以吐心中块垒。 目录 ?爬虫入门文章内容: 爬虫基础(chrome抓包使用与HTTP协议) 爬虫基础库的使用(urllib库基本使用、简单爬虫流程、猫眼数据与知乎登录) 爬虫基础什么是网络爬虫通俗理解:爬虫是一个模拟人类请求网站行为的程序。可以自动请求网页、并把数据抓取下来,然后使用一定的规则提取有价值的数据。 Http协议1、Http协议:全称是HyperText Transfer Protocol,中文意思是超文本传输协议,是一种发布和接收HTML(HyperText Markup Language)页面的方法。服务器端口号是80端口。 HTTPS协议:是HTTP协议的加密版本,在HTTP下加入了SSL层。服务器端口号是443端口。 2、url详解: ????????URL是Uniform Resource Locator的简写,统一资源定位符。 一个URL由以下几部分组成: ? ? ? ? 访问协议:一般为http或者https以及ftp等 ? ? ? ? 主机名:域名,比如www.baidu.com ? ? ? ? 端口号 ? ? ? ? 查找路径:跟在域名后www.jianshu.com/trending/now ? ? ? ? 查询字符串:跟在?后www.baidu.com/s?wd=python ? ? ? ? 锚点:用作页面定位或导航 ? ? ? ? 浏览器会对url进行编码,所以我们常会在导航栏看到一堆乱码,除英文字母,数字和部分符号外,其他的全部使用百分号+十六进制码值进行编码。 3、请求方法 ?4、请求头参数 ? ? ? ? 我们用HTTP协议发送请求时,数据分为三部分:url,body,head ? ? ? ? 常用head: ????????User-Agent:浏览器名称。这个在网络爬虫中经常会被使用到。请求一个网页的时候,服务器通过这个参数就可以知道这个请求是由哪种浏览器发送的。如果我们是通过爬虫发送请求,那么我们的User-Agent就是Python,这对于那些有反爬虫机制的网站来说,可以轻易的判断你这个请求是爬虫。因此我们要经常设置这个值为一些浏览器的值,来伪装我们的爬虫。 ????????Referer:表明当前这个请求是从哪个url过来的。这个一般也可以用来做反爬虫技术。如果不是从指定页面过来的,那么就不做相关的响应。 ???????? Cookie:http协议是无状态的。也就是同一个人发送了两次请求,服务器没有能力知道这两个请求是否来自同一个人。因此这时候就用cookie来做标识。一般如果想要做登录后才能访问的网站,那么就需要发送cookie信息了。(就是浏览器老是弹出来的那个“我们使用了cookie技术”) chrome抓包打开chrome浏览器(或者其它也行):右键->检查或者按下F12即可进行抓包 前面提到的url,User-Agent,Cookie都可以在抓包界面的“网络”下找到 爬虫基础库的使用urlliburllib库是Python中一个最基本的网络请求库。可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据。urllib是Python自带的标准库,无需安装,直接可以用。 urlopen函数
?函数的返回值为http.client.HTTPResponse对象。有read(size)、readline、readlines以及getcode等方法。 urlretrieve函数这个函数可以方便的将网页上的一个文件保存到本地。
urlencode与parse_qs
添加请求头如果刚才不爬取搜狗而去爬取百度,我们会发现爬取失败,因为百度做了反爬虫举措,我们可以通过添加请求头解决这个问题。
小结与实例通过上面的爬取演示,我们可以总结简单爬取流程如下 定义统一资源定位符url->定义字典型变量headers,里面装我们需要的请求头->使用request.Request建立对象用以解析->使用request.urlopen函数解析对象并保存或输出 爬取猫眼票房数据
知乎模拟登录现在网络上大多数论坛类网站都有用户登录功能,而我们在爬取这些网站信息是可能就会遇到登录问题,于是我们需要学习如何使用cookie进行登录模拟 # 为了辨别用户身份,进行session跟踪而储存在用户本地的数据 # cookie包含: # Name # value # expires:过期时间 # path # domain:域名 # SECURE:是否只在https下起作用 ?方法一: 直接在headers字典中直接添加你在登录界面中寻找到的cookie 方法二: 使用http.cookiejar函数(更高端且灵性) 但是我现在实在太困了,鸽一下把使用http.cookiejar放在下次内容将吧,明天(今天)早上直接进行一个早八的翘兄弟们。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:37:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |