python爬虫AJAX数据爬取和HTTPS访问 | python爬虫实战之四

简介: 本节介绍了通过“豆瓣电影”来进行了json数据的处理,另外说明了HTTPS访问需要获得CA证书。使用HTTPS加密数据更加安全。

python爬虫URL编码和GETPOST请求 | python爬虫实战之三

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

我们首先需要对之前所接触的爬虫的概念,爬取流程、爬虫标准库等内容做一个回顾。
通常我们在大多数情况下编写的爬虫都为聚焦爬虫。
接下来我们通过豆瓣电影来处理JSON数据。

处理JSON数据

查看“豆瓣电影”,看到”最近热门电影”的“热门”。

image.png

右键“审查元素”,找到“Network”,刷新一下。

image.png
image.png

我们可以看到很多的内容,我们针对热门电影这一部分进行分析。

image.png

然后复制地址进行操作分析。

通过分析, 我们知道这部分内容, 是通过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是utf-8编码的中文“热门”
服务器返回的JSON数据如下:

image.png

轮播组件,共需要50条数据。
其中url的表示如下:
tag标签”热门”,表示热门电影
type数据类型, movie是电影
page_limit表示返回数据的总数
page_start表示数据偏移

我们可以设置page_limit=10&page_start=10的值。

from urllib.parse import urlencode
from urllib.request import urlopen, Request
import simplejson

ua = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36"

jurl = 'https://movie.douban.com/j/search_subjects'

d = {
    'type':'movie',
    'tag':'热门',
    'page_limit':10,
    'page_start':10
}

req = Request('{}?{}'.format(jurl, urlencode(d)), headers={
    'User-agent':ua
})

with urlopen(req) as res:
    subjects = simplejson.loads(res.read())
    print(len(subjects['subjects']))
    print(subjects)

执行结果:

image.png

此时就可以获取到内容了,那么我们有必要将爬虫封装吗?
因为每个企业处理的方式可能会不太一样,返回的数据有可能是html,也有可能是JSON。所以说处理的方式必须一致,或者把函数封装在一个方法中才是我们需要思考的重点。往往我们会为一些特定数据、特定网站写一个特定的爬虫。因为,每一个网站的分析和提取方式可能是不一样的。现在我们只是简单做了一个JSON的处理。但如果是网页解析,则是会非常麻烦的,尤其是网页一旦更换网页模板,我们则需要重新去写网页的解析方式。

HTTPS证书忽略

HTTPS使用SSL安全套接层协议, 在传输层对网络数据进行加密。HTTPS使用的时候需要证书, 而证书需要CA认证。
CA(Certificate Authority) 是数字证书认证中心的简称, 是指发放、管理、废除数字证书的机构。
CA是受信任的第三方,有CA签发的证书具有可信性。如果用户由于信任了CA签发的证书导致的损失,可以追究CA的法律责任。
CA是层级结构,下级CA信任上级CA,且有上级CA颁发给下级CA证书并认证。
一些网站, 例如淘宝, 使用HTTPS加密数据更加安全。
我们来进行对一个网站的爬取:

image.png

执行结果:

image.png
image.png

我们去尝试访问百度,是否可以呢?
修改代码:

image.png

执行结果:

image.png

通过HTTPS访问12306的时候, 失败的原因在于12306的证书未通过CA认证, 它是自己生成的证书, 不可信。而其它网站访问,如https://www.baidu.com/ 并没有提示的原因,它的证书的发行者受信任,且早就存储在当前系统中。

能否像浏览器一样,忽略证书不安全信息呢?
导入ssl模块:

image.png

执行结果:

image.png

这样,我们就可以通过这样的方式去访问类似的网站了。

配套视频课程,点击这里查看

获取更多资源请订阅Python学习站

相关文章
|
10月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
8262 1
|
10月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
771 0
|
10月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
10月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
743 6
|
数据采集 JSON 前端开发
Python爬虫进阶:使用Scrapy库进行数据提取和处理
在我们的初级教程中,我们介绍了如何使用Scrapy创建和运行一个简单的爬虫。在这篇文章中,我们将深入了解Scrapy的强大功能,学习如何使用Scrapy提取和处理数据。
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
794 4
|
数据采集 存储 中间件
Python进行网络爬虫:Scrapy框架的实践
【8月更文挑战第17天】网络爬虫是自动化程序,用于从互联网收集信息。Python凭借其丰富的库和框架成为构建爬虫的首选语言。Scrapy作为一款流行的开源框架,简化了爬虫开发过程。本文介绍如何使用Python和Scrapy构建简单爬虫:首先安装Scrapy,接着创建新项目并定义爬虫,指定起始URL和解析逻辑。运行爬虫可将数据保存为JSON文件或存储到数据库。此外,Scrapy支持高级功能如中间件定制、分布式爬取、动态页面渲染等。在实践中需遵循最佳规范,如尊重robots.txt协议、合理设置爬取速度等。通过本文,读者将掌握Scrapy基础并了解如何高效地进行网络数据采集。
|
数据采集 存储 JSON
Python爬虫开发:BeautifulSoup、Scrapy入门
在现代网络开发中,网络爬虫是一个非常重要的工具。它可以自动化地从网页中提取数据,并且可以用于各种用途,如数据收集、信息聚合和内容监控等。在Python中,有多个库可以用于爬虫开发,其中BeautifulSoup和Scrapy是两个非常流行的选择。本篇文章将详细介绍这两个库,并提供一个综合详细的例子,展示如何使用它们来进行网页数据爬取。
|
数据采集 存储 中间件
Python高效爬虫——scrapy介绍与使用
Scrapy是一个快速且高效的网页抓取框架,用于抓取网站并从中提取结构化数据。它可用于多种用途,从数据挖掘到监控和自动化测试。 相比于自己通过requests等模块开发爬虫,scrapy能极大的提高开发效率,包括且不限于以下原因: 1. 它是一个异步框架,并且能通过配置调节并发量,还可以针对域名或ip进行精准控制 2. 内置了xpath等提取器,方便提取结构化数据 3. 有爬虫中间件和下载中间件,可以轻松地添加、修改或删除请求和响应的处理逻辑,从而增强了框架的可扩展性 4. 通过管道方式存储数据,更加方便快捷的开发各种数据储存方式

推荐镜像

更多