【Python爬虫开发实战②】使用urllib以及jsonpath爬取即将上映电影信息

这篇具有很好参考价值的文章主要介绍了【Python爬虫开发实战②】使用urllib以及jsonpath爬取即将上映电影信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🚀个人主页:为梦而生~ 关注我一起学习吧!
💡专栏:python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~
💡往期推荐
⭐️首先,我们前面讲了多篇基础内容:
【Python爬虫开发基础④】爬虫原理
【Python爬虫开发基础⑤】HTML概述与基本标签详解
【Python爬虫开发基础⑥】计算机网络基础(Web和HTTP)
【Python爬虫开发基础⑦】urllib库的基本使用
【Python爬虫开发基础⑧】XPath库及其基本用法
【Python爬虫开发基础⑨】jsonpath和BeautifulSoup库概述及其对比
⭐️在本文章之前,上一篇实战的文章:
【Python爬虫开发实战①】使用urllib以及XPath爬取可爱小猫图片
大家可以复制代码感受一下爬虫的魅力~
💡本期内容:我们来接着上次的解析库jsonpath,以及前面的urllib,进行一个比较有趣的实战:获取即将上映的电影信息

跟上期一样,我们先来看一下效果:
【Python爬虫开发实战②】使用urllib以及jsonpath爬取即将上映电影信息,python网络爬虫从基础到实战,python,爬虫,开发语言,urllib,数据挖掘,json



1 需要使用的库

  • urllib

urllib是Python的一个标准库,用于处理URL(统一资源定位符)的模块。它提供了一些常用的功能,包括发送请求、处理响应、解析URL等。

  • 可以点击之前文章链接学习基础知识【Python爬虫开发基础⑦】urllib库的基本使用
  • json

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它以易于阅读和编写的文本格式来表示结构化数据。JSON数据格式广泛用于互联网应用之间的数据传输,并且被各种编程语言支持。

  • 使用python对json格式数据进行操作,可参考【Python爬虫开发基础③】Python基础(文件操作方法汇总)这篇文章
  • jsonpath

JSONPath是一种用于从JSON数据中提取或查询数据的表达式语言。它最初由史蒂芬·摩根(Stephen Morgan)在2007年创建,并在2014年成为了IETF(互联网工程任务组)的标准。

  • 大家可以通过上一篇文章了解一下jsonpath解析 【Python爬虫开发基础⑨】jsonpath和BeautifulSoup库概述及其对比
  • csv

Python的csv是一个用于读取、写入和操作CSV(逗号分隔值)文件的模块。CSV文件是一种常见的用于存储和交换数据的文件格式,它将数据按照逗号进行分隔,并可使用文本编辑器进行查看和编辑。
在Python中,使用csv模块可以轻松地读取和写入CSV文件。它提供了一些用于处理CSV数据的函数和类,包括Reader、Writer和DictReader等。

  • 大家同样可以通过这篇文章了解一下csv【Python爬虫开发基础③】Python基础(文件操作方法汇总)

2 寻找接口并创建请求

首先打开首页,我们究竟从哪里能得到想要的数据呢?有两种方法,一、通过定位得到HTML代码,通过解析代码得到想要的内容;二、通过抓包,得到主要的接口,通过对这个接口发送请求,就可以得到数据。

在这里,我们通过第二种方法,也就是抓包获取。

  1. 首先打开相应的网页,按F12打开开发者工具点击网络,并清除所有内容。

  2. 刷新页面,抓取到响应的数据,找到json格式数据,该接口就是我们需要的
    【Python爬虫开发实战②】使用urllib以及jsonpath爬取即将上映电影信息,python网络爬虫从基础到实战,python,爬虫,开发语言,urllib,数据挖掘,json


3 发送请求并获取响应

下面我们开始写代码:

  • 导入需要的库
import urllib.request
import json
import jsonpath
import csv
  • 请求对象的定制
# 请求对象的定制
def create_request():
    url = '(自己复制过来)'
    
    headers = {
        'Cookie':'(自己复制过来)',
        'Referer':'(自己复制过来)',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
    }
    
    request = urllib.request.Request(url = url, headers = headers)
    
    return request
  • 获取网页源码
# 获取网页的源码
def get_content(request):
    # 发送请求获取响应
    response = urllib.request.urlopen(request)
    # 对响应进行解码
    content = response.read().decode('utf-8')
#     print(content)
    # 返回
    return content

在这里得到的content就是获取到的响应数据文章来源地址https://www.toymoban.com/news/detail-533246.html


4 使用jsonpath解析得到的json数据

def analyze(content):
    content = content.split('(')[1].split(')')[0]

    with open('tpp.json', 'w', encoding='utf-8') as fp:
        fp.write(content)

    obj = json.load(open('tpp.json', 'r', encoding='utf-8'))

    return obj
  • 最后将获得的数据写入到csv文件中
def down_load(obj):
    showName_list = jsonpath.jsonpath(obj, '$..showName')
    director_list = jsonpath.jsonpath(obj, '$..director') # 95
    leadingRole_list = jsonpath.jsonpath(obj, '$..leadingRole') # 90
    type_list = jsonpath.jsonpath(obj, '$..type')
    country_list = jsonpath.jsonpath(obj, '$..country')
    language_list = jsonpath.jsonpath(obj, '$..language')
    # duration_list = jsonpath.jsonpath(obj, '$..duration') # 57
    openDay_list = jsonpath.jsonpath(obj, '$..openDay')
    
    with open('./即将上映电影信息.csv', 'a', encoding='gbk', newline='') as f:
        a = csv.writer(f)
        field = ['电影名', '导演', '主演', '类型', '国家', '语言', '上映时间']
        a.writerow(field)
        print(['电影名', '导演', '主演', '类型', '国家', '语言', '上映时间'])

        for i in range(len(leadingRole_list)):
            list_data = [showName_list[i], director_list[i], leadingRole_list[i], type_list[i], country_list[i], language_list[i], openDay_list[i]]
            a.writerow(list_data)
            print(list_data)
  • 最后,我们按顺序调用以上函数就可以实现了
# (1) 请求对象的定制
request = create_request()
# (2) 获取网页的源码
content = get_content(request)
# (3) 解析
obj = analyze(content)
# (4) 下载
down_load(obj)

到了这里,关于【Python爬虫开发实战②】使用urllib以及jsonpath爬取即将上映电影信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python爬虫实战——小说爬取

    基于 requests 库和 lxml 库编写的爬虫,目标小说网站域名http://www.365kk.cc/,类似的小说网站殊途同归,均可采用本文方法爬取。 目标网站 :传送门 本文的目标书籍 :《我的师兄实在太稳健了》 “渡劫只有九成八的把握,和送死有什么区别?” 网络爬虫的工作实际上主要分为

    2024年02月06日
    浏览(35)
  • Python爬虫实战——爬取新闻数据(简单的深度爬虫)

            又到了爬新闻的环节(好像学爬虫都要去爬爬新闻,没办法谁让新闻一般都很好爬呢XD,拿来练练手),只作为技术分享,这一次要的数据是分在了两个界面,所以试一下深度爬虫,不过是很简单的。  网页url 1.先看看网站网址的规律  发现这部分就是每一天的新闻

    2024年02月11日
    浏览(33)
  • Python爬虫库之urllib使用详解

      一、Python urllib库 Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。 Python3 的 urllib。 urllib 包 包含以下几个模块: urllib.request - 打开和读取 URL。 urllib.error - 包含 urllib.request 抛出的异常。 urllib.parse - 解析 URL。 urllib.robotparser - 解析 robots.txt 文件。 二、urllib.r

    2024年02月11日
    浏览(36)
  • Python 爬虫之 urllib 包基本使用

    urllib 是一个 python 内置包,不需要额外安装即可使用,包里面包含了以下几个用来处理 url 的模块: urllib.request,用来打开和读取 url,意思就是可以用它来模拟发送请求,就像在浏览器里输入网址然后敲击回车一样,获取网页响应内容。 urllib.error,用来处理 urllib.request 引起

    2024年02月09日
    浏览(46)
  • python爬虫实战(1)--爬取新闻数据

    想要每天看到新闻数据又不想占用太多时间去整理,萌生自己抓取新闻网站的想法。 使用python语言可以快速实现,调用 BeautifulSoup 包里面的方法 安装BeautifulSoup 完成以后引入项目 定义请求头,方便把请求包装成正常的用户请求,防止被拒绝 定义被抓取的url,并请求加上请求

    2024年02月13日
    浏览(42)
  • 【爬虫系列】Python爬虫实战--招聘网站的职位信息爬取

    1. 需求分析 从网上找工作,大家一般都会通过各种招聘网站去检索相关信息,今天利用爬虫采集招聘网站的职位信息,比如岗位名称,岗位要求,薪资,公司名称,公司规模,公司位置,福利待遇等最为关心的内容。在采集和解析完成后,使用 Excel 或 csv 文件保存。 2. 目标

    2024年02月02日
    浏览(44)
  • Python爬虫基础(一):urllib库的使用详解

    Python爬虫基础(一):urllib库的使用详解 Python爬虫基础(二):使用xpath与jsonpath解析爬取的数据 Python爬虫基础(三):使用Selenium动态加载网页 Python爬虫基础(四):使用更方便的requests库 Python爬虫基础(五):使用scrapy框架 urllib是一个python自带的库,不需要手动安装。

    2024年02月08日
    浏览(43)
  • Python爬虫实战入门:爬取360模拟翻译(仅实验)

    需求 目标网站: https://fanyi.so.com/# 要求:爬取360翻译数据包,实现翻译功能 所需第三方库 requests 简介 requests 模块是 python 基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。 安装 pip install -i https://py

    2024年02月22日
    浏览(37)
  • Python应用-爬虫实战-求是网周刊文章爬取

    任务描述 本关任务:编写一个爬虫,并使用正则表达式获取求是周刊 2019 年第一期的所有文章的 url 。详情请查看《求是》2019年第1期 。 相关知识 获取每个新闻的 url 有以下几个步骤: 首先获取 2019 年第 1 期页面的源码,需要解决部分反爬机制; 找到目标 url 所在位置,观

    2024年02月04日
    浏览(40)
  • 爬虫学习记录之Python 爬虫实战:爬取研招网招生信息详情

    【简介】本篇博客 为爱冲锋 ,爬取北京全部高校的全部招生信息,最后持久化存储为表格形式,可以用作筛选高校。 此处导入本次爬虫所需要的全部依赖包分别是以下内容,本篇博客将爬取研招网北京所有高校的招生信息,主要爬取内容为学校,考试方式,所在学院,专业

    2024年01月24日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包