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/并没有提示的原因,它的证书的发行者受信

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

相关文章
|
10天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
50 6
|
19天前
|
数据采集 API 数据处理
Objective-C 音频爬虫:实时接收数据的 didReceiveData: 方法
Objective-C 音频爬虫:实时接收数据的 didReceiveData: 方法
|
1月前
|
数据采集 存储 数据挖掘
深入探索 Python 爬虫:高级技术与实战应用
本文介绍了Python爬虫的高级技术,涵盖并发处理、反爬虫策略(如验证码识别与模拟登录)及数据存储与处理方法。通过asyncio库实现异步爬虫,提升效率;利用tesseract和requests库应对反爬措施;借助SQLAlchemy和pandas进行数据存储与分析。实战部分展示了如何爬取电商网站的商品信息及新闻网站的文章内容。提醒读者在实际应用中需遵守法律法规。
174 66
|
8天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
11天前
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
36 4
|
2月前
|
数据采集 存储 监控
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
本文探讨了如何利用 PHP 的 `set_time_limit()` 与爬虫工具的 `setTrafficLimit()` 方法,结合多线程和代理 IP 技术,高效稳定地抓取百度云盘的公开资源。通过设置脚本执行时间和流量限制,使用多线程提高抓取效率,并通过代理 IP 防止 IP 封禁,确保长时间稳定运行。文章还提供了示例代码,展示了如何具体实现这一过程,并加入了数据分类统计功能以监控抓取效果。
65 16
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
|
1月前
|
数据采集 JavaScript 前端开发
JavaScript逆向爬虫——使用Python模拟执行JavaScript
JavaScript逆向爬虫——使用Python模拟执行JavaScript
|
1月前
|
前端开发 API 开发者
深度剖析:AJAX、Fetch API如何成为Python后端开发者的最佳拍档!
深度剖析:AJAX、Fetch API如何成为Python后端开发者的最佳拍档!
35 4
|
1月前
|
消息中间件 数据采集 数据库
小说爬虫-03 爬取章节的详细内容并保存 将章节URL推送至RabbitMQ Scrapy消费MQ 对数据进行爬取后写入SQLite
小说爬虫-03 爬取章节的详细内容并保存 将章节URL推送至RabbitMQ Scrapy消费MQ 对数据进行爬取后写入SQLite
21 1
|
1月前
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
在Web开发领域,AJAX与Fetch API是提升交互体验的关键技术。AJAX(Asynchronous JavaScript and XML)作为异步通信的先驱,通过XMLHttpRequest对象实现了局部页面更新,提升了应用流畅度。Fetch API则以更现代、简洁的方式处理HTTP请求,基于Promises提供了丰富的功能。当与Python Web框架(如Django、Flask)结合时,这两者能显著增强应用的响应速度和用户体验,使项目更加高效、高大上。
48 2
下一篇
无影云桌面