返回顶部
首页 > 资讯 > 后端开发 > Python >Python Ajax爬虫方法案例分析
  • 875
分享到

Python Ajax爬虫方法案例分析

2023-06-29 01:06:41 875人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

今天小编给大家分享一下python ajax爬虫方法案例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 抓

今天小编给大家分享一下python ajax爬虫方法案例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    1. 抓取街拍图片

    街拍图片网址

    Python Ajax爬虫方法案例分析

    2. 分析街拍图片结构

    Python Ajax爬虫方法案例分析

    Python Ajax爬虫方法案例分析

    keyWord: 街拍pd: atlasdvpf: pcaid: 4916page_num: 1search_JSON: {"from_search_id":"20220104115420010212192151532E8188","origin_keyword":"街拍","image_keyword":"街拍"}rawjsON: 1search_id: 202201041159040101501341671A4749C4

    可以找到规律,page_num从1开始累加,其他参数不变

    3. 按功能不同编写不同方法组织代码

    3.1 获取网页json格式数据

    def get_page(page_num):    global headers    headers = {        'Host': 'so.toutiao.com',        #'Referer': 'https://so.toutiao.com/search?keyword=%E8%A1%97%E6%8B%8D&pd=atlas&dvpf=pc&aid=4916&page_num=0&search_json={%22from_search_id%22:%22202112272022060101510440283EE83D67%22,%22origin_keyword%22:%22%E8%A1%97%E6%8B%8D%22,%22image_keyword%22:%22%E8%A1%97%E6%8B%8D%22}',        'User-Agent': 'Mozilla/5.0 (windows NT 10.0; WOW64) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/86.0.4240.198 Safari/537.36',        'X-Requested-With': 'XMLHttpRequest',        'Cookie': 'msToken=S0DFBkZ9hmyLOGYd3_QjhhXgrm38QtyOITnkNb0t_oavfbVxuYV1JZ0tT5hLgswSfmZLFD6c2lONm_5TomUQXVXjen7CIxM2AGwbhHRYKjhg; _S_DPR=1.5; _S_IPAD=0; MONITOR_WEB_ID=7046351002275317255; ttwid=1%7C0YdWalNdIiSpIk3CvvHwV25U8drq3QAj08E8QOApXhs%7C1640607595%7C720e971d353416921df127996ed708931b4ae28a0a8691a5466347697e581ce8; _S_WIN_WH=262_623'    }    params = {        'keyword': '街拍',        'pd': 'atlas',        'dvpf': 'pc',        'aid': '4916',        'page_num': page_num,        'search_json': '%7B%22from_search_id%22%3A%22202112272022060101510440283EE83D67%22%2C%22origin_keyword%22%3A%22%E8%A1%97%E6%8B%8D%22%2C%22image_keyword%22%3A%22%E8%A1%97%E6%8B%8D%22%7D',        'rawJSON': 1,        'search_id': '2021122721183101015104402851E3883D'    }    url = 'https://so.toutiao.com/search?' + urlencode(params)    print(url)    try:        response=requests.get(url,headers=headers,params=params)        if response.status_code == 200:        #if response.content:            #print(response.json())            return response.json()    except requests.ConnectionError:        return None

    3.2 从json格式数据提取街拍图片

    def get_images(json):    images = json.get('rawData').get('data')    for image in images:        link = image.get('img_url')        yield link

    3.3 将街拍图片以其md5码命名并保存图片

    实现一个保存图片的方法save_image(),其中 item 就是前面 get_images() 方法返回的一个字典。在该方法中,首先根据 item 的 title 来创建文件夹,然后请求这个图片链接,获取图片的二进制数据,以二进制的形式写入文件。图片的名称可以使用其内容的 MD5 值,这样可以去除重复。相关

    代码如下:

    def save_image(link):    data = requests.get(link).content    with open(f'./image/{md5(data).hexdigest()}.jpg', 'wb')as f:#使用data的md5码作为图片名        f.write(data)

    3.4 main()调用其他函数

    def main(page_num):    json = get_page(page_num)    for link in get_images(json):        #print(link)        save_image(link)

    4 抓取20page今日头条街拍图片数据

    这里定义了分页的起始页数和终止页数,分别为GROUP_START GROUP_END,还利用了多线程线程池,调用其 map() 方法实现程下载。

    if __name__ == '__main__':    GROUP_START = 1    GROUP_END = 20    pool = Pool()    groups = ([x for x in range(GROUP_START, GROUP_END + 1)])    #print(groups)    pool.map(main, groups)    pool.close()    pool.join()
    import requestsfrom urllib.parse import urlencodefrom hashlib import md5from multiprocessing.pool import Pooldef get_page(page_num):    global headers    headers = {        'Host': 'so.toutiao.com',        #'Referer': 'https://so.toutiao.com/search?keyword=%E8%A1%97%E6%8B%8D&pd=atlas&dvpf=pc&aid=4916&page_num=0&search_json={%22from_search_id%22:%22202112272022060101510440283EE83D67%22,%22origin_keyword%22:%22%E8%A1%97%E6%8B%8D%22,%22image_keyword%22:%22%E8%A1%97%E6%8B%8D%22}',        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',        'X-Requested-With': 'XMLHttpRequest',        'Cookie': 'msToken=S0DFBkZ9hmyLOGYd3_QjhhXgrm38qTyOITnkNb0t_oavfbVxuYV1JZ0tT5hLgswSfmZLFD6c2lONm_5TomUQXVXjen7CIxM2AGwbhHRYKjhg; _S_DPR=1.5; _S_IPAD=0; MONITOR_WEB_ID=7046351002275317255; ttwid=1%7C0YdWalNdIiSpIk3CvvHwV25U8drq3QAj08E8QOApXhs%7C1640607595%7C720e971d353416921df127996ed708931b4ae28a0a8691a5466347697e581ce8; _S_WIN_WH=262_623'    }    params = {        'keyword': '街拍',        'pd': 'atlas',        'dvpf': 'pc',        'aid': '4916',        'page_num': page_num,        'search_json': '%7B%22from_search_id%22%3A%22202112272022060101510440283EE83D67%22%2C%22origin_keyword%22%3A%22%E8%A1%97%E6%8B%8D%22%2C%22image_keyword%22%3A%22%E8%A1%97%E6%8B%8D%22%7D',        'rawJSON': 1,        'search_id': '2021122721183101015104402851E3883D'    }    url = 'https://so.toutiao.com/search?' + urlencode(params)    print(url)    try:        response=requests.get(url,headers=headers,params=params)        if response.status_code == 200:        #if response.content:            #print(response.json())            return response.json()    except requests.ConnectionError:        return Nonedef get_images(json):    images = json.get('rawData').get('data')    for image in images:        link = image.get('img_url')        yield linkdef save_image(link):    data = requests.get(link).content    with open(f'./image/{md5(data).hexdigest()}.jpg', 'wb')as f:#使用data的md5码作为图片名        f.write(data)def main(page_num):    json = get_page(page_num)    for link in get_images(json):        #print(link)        save_image(link)if __name__ == '__main__':    GROUP_START = 1    GROUP_END = 20    pool = Pool()    groups = ([x for x in range(GROUP_START, GROUP_END + 1)])    #print(groups)    pool.map(main, groups)    pool.close()    pool.join()

    以上就是“Python Ajax爬虫方法案例分析”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

    --结束END--

    本文标题: Python Ajax爬虫方法案例分析

    本文链接: https://lsjlt.com/news/321890.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Python Ajax爬虫方法案例分析
      今天小编给大家分享一下Python Ajax爬虫方法案例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 抓...
      99+
      2023-06-29
    • Python Ajax爬虫案例分享
      目录1. 抓取街拍图片2. 分析街拍图片结构3. 按功能不同编写不同方法组织代码3.1 获取网页json格式数据3.2 从json格式数据提取街拍图片3.3 将街拍图片以其md5码命...
      99+
      2024-04-02
    • Python爬虫案例分析
      本篇内容介绍了“Python爬虫案例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 一、论述这几个案例以前是给一些想进入Pyt...
      99+
      2023-06-17
    • Python爬虫实例分析
      今天小编给大家分享一下Python爬虫实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。环境搭建既然用python,那么...
      99+
      2023-06-03
    • python爬虫中xpath实例分析
      这篇文章主要介绍“python爬虫中xpath实例分析”,在日常操作中,相信很多人在python爬虫中xpath实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python爬虫中xpath实例分析”的疑...
      99+
      2023-06-29
    • Python网络爬虫举例分析
      这篇文章主要讲解了“Python网络爬虫举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python网络爬虫举例分析”吧!先来看一段简单的代码。import requests...
      99+
      2023-06-02
    • Python爬虫数据举例分析
      本篇内容介绍了“Python爬虫数据举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!获取数据打开斗鱼直播界面,连续点击翻页Networ...
      99+
      2023-06-02
    • Python爬虫语音播报天气预报案例分析
      这篇文章主要讲解了“Python爬虫语音播报天气预报案例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python爬虫语音播报天气预报案例分析”吧!一、前期准备此案例中要用到的库有:re...
      99+
      2023-06-27
    • 利用Python爬虫爬取金融期货数据的案例分析
      目录任务简介解决步骤代码实现总结大家好 我是政胤今天教大家爬取金融期货数据 任务简介 首先,客户原需求是获取https://hq.smm.cn/copper网站上的价格数据(注:获取...
      99+
      2024-04-02
    • python爬虫中学习方向的示例分析
      小编给大家分享一下python爬虫中学习方向的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python主要应用领域有哪些1、云计算,典型应用OpenSt...
      99+
      2023-06-14
    • ChatGPT爬虫实例分析
      本篇内容主要讲解“ChatGPT爬虫实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ChatGPT爬虫实例分析”吧!思考问题域我要写一个爬虫,把ChatGPT上我的数据都爬下来,首先想想我...
      99+
      2023-07-05
    • 爬虫逆向抖音新版signature分析案例
      目录断点调试流程分析流程总结因为老策略一直能用,一直没有看新版signature。本文做一下分析记录。 断点调试 堆栈进来之后,url中signature已经有了 shift+f1...
      99+
      2024-04-02
    • Python爬虫基础入门实例分析
      这篇文章主要介绍“Python爬虫基础入门实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python爬虫基础入门实例分析”文章能帮助大家解决问题。      &...
      99+
      2023-06-27
    • Python爬虫分析汇总
      目录Python爬虫分析一、程序说明二、数据爬取1、获取 CSDN 作者总榜数据2、获取收藏夹列表3、获取收藏数据4、爬虫程序完整代码5、爬取数据结果三、数据分析及可视化Python...
      99+
      2024-04-02
    • 华为官方解析何为Python爬虫的示例分析
      今天就跟大家聊聊有关华为官方解析何为Python爬虫的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。据华为中国官方消息,华为中国发文《小白看...
      99+
      2024-04-02
    • NodeJS爬虫的示例分析
      小编给大家分享一下NodeJS爬虫的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! request 库requ...
      99+
      2024-04-02
    • Python爬虫之网络请求实例分析
      本篇内容介绍了“Python爬虫之网络请求实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.IP代理某些网站会检测一段时间内某IP的...
      99+
      2023-06-30
    • Python爬虫与数据分析之爬虫技能:u
      专栏目录: Python爬虫与数据分析之python教学视频、python源码分享,python Python爬虫与数据分析之基础教程:Python的语法、字典、元组、列表 Python爬虫与数据分析之进阶教程:文件操作、lambda表达...
      99+
      2023-01-31
      爬虫 技能 数据
    • Python爬虫的两套解析方法和四种爬虫实现
      【本文转载自微信公众号:数据科学家养成记,作者:louwill,转载授权请联系原作者】 对于大多数朋友而言,爬虫绝对是学习python的最好的起手和入门方式。因为爬虫思维模式固定,编程模式也相对简单,一般在细节处理上积累一些经验都...
      99+
      2023-06-02
    • python实操方法案例分析
      本篇内容介绍了“python实操方法案例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!任务1、我的咖啡馆你做主元组coffee_name...
      99+
      2023-06-29
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作