Python 爬虫 AJAX 数据爬取和 HTTPS 访问| 学习笔记

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 快速学习 Python 爬虫 AJAX 数据爬取和 HTTPS 访问

开发者学堂课程【Python爬虫实战Python  爬虫  AJAX  数据爬取和  HTTPS  访问】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/555/detail/7643


Python  爬虫 AJAX  数据爬取和  HTTPS  访问


内容简介

1.概述

2.爬虫分类

3.举例操作


一、概述

爬虫,应该称为网络爬虫,也叫网页蜘蛛。网络机器人、网络蚂蚁等

搜索引擎,也就叫做网络爬虫的应用者。

为什么今天,反而这词次被频繁提起?由搜索引擎不够吗

实际上,大数据时代到了,所有的企业都希望通过海量的数据发现其

中的价值。

所以,需要爬取对特定网站、特定类别的数据,二搜索引擎不能提供

这样的功能,因此,自己需要开发爬虫来解决。


二、爬虫分类

1、通用爬虫

常见的就是搜索引擎,无差别的收集数据、存储关键词,构建索引库,

给用户提供搜索接口

爬取的一般过程

(1)、初始一批 URL  ,将这些  URL  放到待爬取队列

(2)、从队列取出这些  URL,将这些  URL,通过 DNS 解析 IP 对

应的站点下载 HTML 页面,保存到本地服务器中,爬取完的 URL  放

到已爬取队列

(3)、分析这些网页内容,找出网页里面的其他关心的URL连接,

继续执行第二步,直到爬取条件结束

搜索引擎如何获取一个新网站的 URL

新网站主动提交给搜索引擎

通过其它网站页面中设置的外链

通过其他网站设置的外链

搜索引擎和 DNS 服务商合作

2、聚焦爬虫

有针对性的编写特定领域数据的采集的爬虫,是面向主题的爬虫

Robots 协议

只一个 robot.txt 文件,告诉爬虫引擎什么可以爬取

淘宝

其它爬虫,不允许起取  User-Agent:

*Disallow./

这是一个君子协定,能亦有道这个协议为了让搜素引擎更有效率搜索

自己内容,提供了如 Sitemap 这样的文件。这个文件禁止抓取的往往

又是可能我们感兴题的内容,它反而泄露了这些地址。

3、HTTP  请求和响应处理

其实爬取网页就是通过 HTTP  协议访问网页,不过通过浏览器访问往

往是人的行为,把这种行为变成使用程序来访问。

urllib 包

Urllib  是标准库,它一个工具包模块,包含下面模块来处理 url :

·urllib.request  用于打开和读写

url·urllib.error  包含了由  urllib.request  引起的异常

·urllib.parse 用于解析 url

4、urllib.requet  模块

模块定义了在基本和摘要式身份验证、重定向、cookies  等应用中

打开  Url(主要是HTTP)的函数和类。

urlopen  方法

urlopen(ur1,data=None)url  是链接地址字符串,或请求对象。

data

提交的数据,如果 data 为 None  发起 GET 请求,否则发起 POST 请

求。

见  urllib.request.Request#get_method 返回  http.client.

HTTPResponse  类的响应对象,这是一个类文件对象。

代码如下

#下面的链接访问后会有跳转

response=urlopen('http://www.bing.com')#GET方法print

(response.closed)withresponse:

print(1,type(response))#http.client.HTTPResponse类文件对象

print(2,response.status,response.reason)#状态

print(3,response.getur1())#返回真正的URLprint

(4,response.info())#headersprint(5,response.read())#

读取返回的内容

print(response.closed)

上例,通过   urllib.request.urlopen 方法,发起一个 HTTP  的  GET

请求,WEB 服务器返回了网页内容。响应的数据被封装到类文件对

象中,可以通过 read  方法、readline  方法、readlines  方法获

取数据,status  和 reason 属性表示返回的状态码,info 方法返

回头信息,等等。

4、User-Agent  问题

上例的代码非常精简,即可以获得网站的响应数据。urlopen  方法

只能传递  url 和 data  这样的数据,不能构造  HTTP  的请求。例如

useragent.  源码中构造的  useragent  如下

#urllib.request.OpenerDirectorclassOpenerDirector:

Classdef_init_(self):

client_version=“Python-urllib/%s"%_version_self.addheaders

=[('User-agent'client_version)]R

当前显示为  Python-url1ib/3.6

有些网站是反爬虫的,所以要把爬虫伪装成浏览器。随便打开一个浏

览器,复制浏览器的  UA  值,用来伪装。

5、Request  类

Request(ur1,data=None,headers={})

初始化方法,构造一个请求

对象。可添加一个  header  的字典。data  参数决定是 GET  还是  POST

请求。add_header(key,val)  为  header  中增加一个键值对。

6、Urllib.parse  模块

该模块可以完成对  url 的编解码

先看一行代码,进行编码

从运行结果来看,冒号、斜杠、&、等号、问号等字符全部被编码

了,%实际是单字节十六进制表示的值。一般来说,url  中的地址部

分,一般不需要使用中文路劲,但是参数部分,不管是  GET  还是  POST

方法,提交的数据中可以有斜杠、,这样这些字符表示问号等符号,

而不是元字符。为了安全,一般会将一部分数据做URL处理,即不会

有太大的歧义。后来也可作代码,也可传送中文,一般按照字符集的

encoding  要求转变为十六进制字符串前加百分号即可。

7、post  网站

8、处理  Json  数据

查看“豆瓣电影”。寻找最近热门


三、发起  UCL

通过分析,我们知道这部分内容,是通过  AJAX  从后台拿到的 Json 数

据。访问 URL  是

https:

//movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%

AD%E9%97%A8&page_limit=50&page_start=0%E7%83%AD%E9%97%A8

务器返回的  Json 数据如下"

HTTPS  证书忽略

HTTPS  使用  SSL  安全套接层协议,在传输层对网络数据进行加密。

HTTPS  使用的时候需要证书,而证书需要  CA  认证。

CA(CertificateAuthority)  是数字证书认证中心的简称,是指发放、

管理、废除数字证书的机构。CA  是受信任的第三方,有 CA 签发的证

书具有可信性。如果用户由于信任了  CA  签发的证书导致的损失,可

以追究  CA  的法律责任。CA  是层级结构,下级  CA  信任上级  CA, 且有上

级 CA  颁发给下级 CA 证书并认证。

一些网站,例如淘宝,使用 HTTPS  加密数据更加安全。

爬虫成功

通过 HTTPS  访问 12306的时候,失败的原因在于12306的证书未通过

CA认证,它是自己生成的证书,不可信。而其它网站访问,如

https://ww.baidu.com/并没有提示的原因,它的证书的发行者受信

任,且早就存储在当前系统。

相关文章
|
4天前
|
数据采集 存储 XML
构建高效的Python爬虫系统
【9月更文挑战第30天】在数据驱动的时代,掌握如何快速高效地获取网络信息变得至关重要。本文将引导读者了解如何构建一个高效的Python爬虫系统,从基础概念出发,逐步深入到高级技巧和最佳实践。我们将探索如何使用Python的强大库如BeautifulSoup和Scrapy,以及如何应对反爬措施和提升爬取效率的策略。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,帮助你在信息收集的海洋中航行得更远、更深。
17 6
|
2天前
|
数据采集 数据挖掘 数据处理
Python中实现简单爬虫并处理数据
【9月更文挑战第31天】本文将引导读者理解如何通过Python创建一个简单的网络爬虫,并展示如何处理爬取的数据。我们将讨论爬虫的基本原理、使用requests和BeautifulSoup库进行网页抓取的方法,以及如何使用pandas对数据进行清洗和分析。文章旨在为初学者提供一个易于理解的实践指南,帮助他们快速掌握网络数据抓取的基本技能。
14 3
|
6天前
|
数据采集 JSON 数据格式
Python:南京地铁每日客流数据的爬虫实现
Python:南京地铁每日客流数据的爬虫实现
17 1
|
4天前
|
数据采集 Linux 网络安全
python 爬虫遇到的aiohttp证书错误解决办法
python 爬虫遇到的aiohttp证书错误解决办法
17 0
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
104 4
|
2月前
|
数据采集 存储 搜索推荐
打造个性化网页爬虫:从零开始的Python教程
【8月更文挑战第31天】在数字信息的海洋中,网页爬虫是一艘能够自动搜集网络数据的神奇船只。本文将引导你启航,用Python语言建造属于你自己的网页爬虫。我们将一起探索如何从无到有,一步步构建一个能够抓取、解析并存储网页数据的基础爬虫。文章不仅分享代码,更带你理解背后的逻辑,让你能在遇到问题时自行找到解决方案。无论你是编程新手还是有一定基础的开发者,这篇文章都会为你打开一扇通往数据世界的新窗。
|
3月前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
【7月更文挑战第31天】在网络数据的海洋中,使用Python的`requests`库构建网络爬虫就像探索未知的航船。HTTP协议指导爬虫与服务器交流,收集信息。HTTP请求包括请求行、头和体,响应则含状态行、头和体。`requests`简化了发送各种HTTP请求的过程。
72 4
|
3月前
|
数据采集 存储 API
在信息时代,Python爬虫用于自动化网络数据采集,提高效率。
【7月更文挑战第5天】在信息时代,Python爬虫用于自动化网络数据采集,提高效率。基本概念包括发送HTTP请求、解析HTML、存储数据及异常处理。常用库有requests(发送请求)和BeautifulSoup(解析HTML)。基本流程:导入库,发送GET请求,解析网页提取数据,存储结果,并处理异常。应用案例涉及抓取新闻、商品信息等。
82 2
|
16天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
47 3
|
16天前
|
数据采集 API 开发者
🚀告别网络爬虫小白!urllib与requests联手,Python网络请求实战全攻略
在网络的广阔世界里,Python凭借其简洁的语法和强大的库支持,成为开发网络爬虫的首选语言。本文将通过实战案例,带你探索urllib和requests两大神器的魅力。urllib作为Python内置库,虽API稍显繁琐,但有助于理解HTTP请求本质;requests则简化了请求流程,使开发者更专注于业务逻辑。从基本的网页内容抓取到处理Cookies与Session,我们将逐一剖析,助你从爬虫新手成长为高手。
40 1
下一篇
无影云桌面