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

简介: 快速学习 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/并没有提示的原因,它的证书的发行者受信

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

相关文章
|
6月前
|
数据采集 NoSQL 关系型数据库
Python爬虫去重策略:增量爬取与历史数据比对
Python爬虫去重策略:增量爬取与历史数据比对
|
3月前
|
数据采集 Web App开发 iOS开发
解决Python爬虫访问HTTPS资源时Cookie超时问题
解决Python爬虫访问HTTPS资源时Cookie超时问题
|
4月前
|
数据采集 Web App开发 JavaScript
Python爬虫解析动态网页:从渲染到数据提取
Python爬虫解析动态网页:从渲染到数据提取
|
6月前
|
数据采集 存储 缓存
Python爬虫与代理IP:高效抓取数据的实战指南
在数据驱动的时代,网络爬虫是获取信息的重要工具。本文详解如何用Python结合代理IP抓取数据:从基础概念(爬虫原理与代理作用)到环境搭建(核心库与代理选择),再到实战步骤(单线程、多线程及Scrapy框架应用)。同时探讨反爬策略、数据处理与存储,并强调伦理与法律边界。最后分享性能优化技巧,助您高效抓取公开数据,实现技术与伦理的平衡。
243 4
|
6月前
|
数据采集 搜索推荐 API
Python 原生爬虫教程:京东商品列表页面数据API
京东商品列表API是电商大数据分析的重要工具,支持开发者、商家和研究人员获取京东平台商品数据。通过关键词搜索、分类筛选、价格区间等条件,可返回多维度商品信息(如名称、价格、销量等),适用于市场调研与推荐系统开发。本文介绍其功能并提供Python请求示例。接口采用HTTP GET/POST方式,支持分页、排序等功能,满足多样化数据需求。
|
7月前
|
Web App开发 数据采集 前端开发
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
|
7月前
|
数据采集 XML 存储
Python爬虫实战:一键采集电商数据,掌握市场动态!
这个爬虫还挺实用,不光能爬电商数据,改改解析规则,啥数据都能爬。写爬虫最重要的是要有耐心,遇到问题别着急,慢慢调试就成。代码写好了,运行起来那叫一个爽,分分钟几千条数据到手。
|
6月前
|
数据采集 API 数据格式
Python 原生爬虫教程:京东商品详情页面数据API
本文介绍京东商品详情API在电商领域的应用价值及功能。该API通过商品ID获取详细信息,如基本信息、价格、库存、描述和用户评价等,支持HTTP请求(GET/POST),返回JSON或XML格式数据。对于商家优化策略、开发者构建应用(如比价网站)以及消费者快速了解商品均有重要意义。研究此API有助于推动电商业务创新与发展。
|
8月前
|
数据采集 JSON Java
Java爬虫获取微店快递费用item_fee API接口数据实现
本文介绍如何使用Java开发爬虫程序,通过微店API接口获取商品快递费用(item_fee)数据。主要内容包括:微店API接口的使用方法、Java爬虫技术背景、需求分析和技术选型。具体实现步骤为:发送HTTP请求获取数据、解析JSON格式的响应并提取快递费用信息,最后将结果存储到本地文件中。文中还提供了完整的代码示例,并提醒开发者注意授权令牌、接口频率限制及数据合法性等问题。

推荐镜像

更多