网络爬虫——urllib(4)文末好书推荐

这篇具有很好参考价值的文章主要介绍了网络爬虫——urllib(4)文末好书推荐。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言🍭

 ❤️❤️❤️网络爬虫专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️

Python网络爬虫_热爱编程的林兮的博客-CSDN博客

 上篇我们讲解了百度详细翻译这个案例,这篇同样也是进行案例讲解。

9.ajax的get请求🍉

Ⅰ、ajax的get请求请求豆瓣电影第一页🍓

我们打开豆瓣电影,随便打开一个排行榜(电影->剧情)

豆瓣电影分类排行榜 - 剧情片 (douban.com)

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

我们F12,打开开发者工具

打开第一个接口,可以看到只有网页,没有数据,我们继续找

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

找到下面这个,发现了“肖申克的救赎” ,但是这个只有一个数据啊,继续找

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

 我们又找到一个,有20个数据(都是json格式的,因为它给我们返回的就是json数据,前后端分离),我们打开来看看

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

 前面两个是 肖申克的救赎霸王别姬

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

最后一个(第二十个)是 海上钢琴师 

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

果然 第二十部电影是 海上钢琴师 

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

这个接口就是我们想要的数据,好下面我们来写代码:

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

 这是get请求,我们就按get请求来做。

# get请求
# 获取豆瓣电影的第一页的数据 并且保存起来

import urllib.request

# header中的url
url = 'https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=0&limit=20'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
}

# (1) 请求对象的定制
request = urllib.request.Request(url=url, headers=headers)

# (2)获取响应的数据
response = urllib.request.urlopen(request)
content = response.read().decode('utf-8')

print(content)

我们先打印出来,看看有什么问题

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

好像没问题,我们继续写代码,我们将json数据下载下来:

# get请求
# 获取豆瓣电影的第一页的数据 并且保存起来

import urllib.request

# header中的url
url = 'https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=0&limit=20'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
}

# (1) 请求对象的定制
request = urllib.request.Request(url=url, headers=headers)

# (2)获取响应的数据
response = urllib.request.urlopen(request)
content = response.read().decode('utf-8')

# print(content)
# (3) 数据下载到本地
# open方法默认情况下使用的是gbk的编码  如果我们要想保存汉字 那么需要在open方法中指定编码格式为utf-8

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

 运行代码,然后就下载好了,我们将前20条数据下载好了:

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

 下面我们来下载豆瓣电影的前十页

 Ⅱ、ajax的get请求请求豆瓣电影前十页🍓

 我们在上面知道了,豆瓣电影中一组数据有20部电影,我们继续往下滑,它还有第21部,22部电影

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

同样的我们去 开发者工具中找到第二组数据:

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能​ 同样的我们去找第三组第四组数据:

# https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=0&limit=20
# https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=20&limit=20
# https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=40&limit=20
# https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=60&limit=20

然后去观察规律

我们发现只有start的键值对 的值不一样,很明显可以看出start值是(page-1)*20

从这里我们就找到了start和page的关系

下面我们来写代码

# https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=0&limit=20
# https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=20&limit=20
# https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=40&limit=20
# https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=60&limit=20

# start (page - 1)*20

import urllib.parse
import urllib.request


def create_request(page):
    base_url = 'https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&'

    data = {
        'start': (page - 1) * 20,
        'limit': 20
    }

    data = urllib.parse.urlencode(data)

    url = base_url + data

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 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')
    return content

# page强制类型转换 否则拼接不上
def down_load(page, content):
    with open('douban_' + str(page) + '.json', 'w', encoding='utf-8') as fp:
        fp.write(content)


# 程序的入口
if __name__ == '__main__':
    start_page = int(input('请输入起始的页码'))
    end_page = int(input('请输入结束的页面'))

    for page in range(start_page, end_page + 1):
        #         每一页都有自己的请求对象的定制
        request = create_request(page)
        #         获取响应的数据
        content = get_content(request)
        #         下载
        down_load(page, content)

运行代码我们就将前十页json数据都下载好了 

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

10.ajax的post请求 🍉

下面我们来爬取一下KFC,查看一下北京这个城市哪个位置有KFC,并且保存数据。

肯德基餐厅信息查询 (kfc.com.cn)

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

 可以看到这里有很多KFC店

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

我们查看url,同时也可以看到这是POST请求

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

 一样的,我们观察不同页数的url区别 

# 1页
# http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname
# post
表单数据
# cname: 北京
# pid:
# pageIndex: 1
# pageSize: 10


# 2页
# http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname
# post
表单数据
# cname: 北京
# pid:
# pageIndex: 2
# pageSize: 10

 下面我们来写代码,去爬取北京KFC位置信息

# 1页
# http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname
# post
# cname: 北京
# pid:
# pageIndex: 1
# pageSize: 10


# 2页
# http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname
# post
# cname: 北京
# pid:
# pageIndex: 2
# pageSize: 10

import urllib.request
import urllib.parse


def create_request(page):
    base_url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname'

    data = {
        'cname': '北京',
        'pid': '',
        'pageIndex': page,
        'pageSize': '10'
    }

    data = urllib.parse.urlencode(data).encode('utf-8')

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
    }

    request = urllib.request.Request(url=base_url, headers=headers, data=data)

    return request


def get_content(request):
    response = urllib.request.urlopen(request)
    content = response.read().decode('utf-8')
    return content


def down_load(page, content):
    with open('kfc_' + str(page) + '.json', 'w', encoding='utf-8') as fp:
        fp.write(content)


if __name__ == '__main__':
    start_page = int(input('请输入起始页码'))
    end_page = int(input('请输入结束页码'))

    for page in range(start_page, end_page + 1):
        # 请求对象的定制
        request = create_request(page)
        # 获取网页源码
        content = get_content(request)
        # 下载
        down_load(page, content)

 运行代码,我们就爬取好了,数据也能对上

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

 好书推荐:ChatGPT进阶:提示工程入门

爆火全网的原创提示词设计框架BROKE,带你5步掌握向人工智能提问的艺术,从小白变身ChatGPT应用专家,将AI转化为生产工具,重塑你的工作流!

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

内容简介

本书是一本面向所有人的提示工程工具书,旨在帮助你掌握并有效利用以ChatGPT为代表的AI工具。学习完本书后,你将能够自如地将ChatGPT运用在生活和专业领域中,成为ChatGPT进阶玩家。

本书共分为9章,内容涵盖三个层次:介绍与解读、入门学习、进阶提升。第1~2章深入介绍与剖析了ChatGPT与提示工程,并从多个学科的角度探讨了提示工程学科。第3~5章演示了ChatGPT的实际运用,教你如何使用ChatGPT解决自然语言处理问题,并为你提供了一套可操作、可重复的提示设计框架,让你能够熟练驾驭ChatGPT。第6~9章讲解了来自学术界的提示工程方法,以及如何围绕ChatGPT进行创新;此外,为希望ChatGPT进行应用开发的读者提供了实用的参考资料,并介绍了除ChatGPT之外的其他选择。

本书聚焦ChatGPT的实际应用,可操作,可重复,轻松易读却不失深度。无论你是对ChatGPT及类似工具充满好奇,还是期待将其转化为生产力,本书都值得一读。此外,本书还可作为相关培训机构的教材。

购买链接

京东购买链接:https://item.jd.com/14098844.html

当当购买链接:http://product.dangdang.com/29612772.html

参与方式

关注博主、点赞、收藏、评论区任意评论(评论折叠无效)

即可参与送书活动!

开奖时间:2023-10-28 21:00:00

网络爬虫——urllib(4)文末好书推荐,Python网络爬虫,1024程序员节,爬虫,python,人工智能

文章来源地址https://www.toymoban.com/news/detail-717533.html

到了这里,关于网络爬虫——urllib(4)文末好书推荐的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【好书推荐】JavaScript Es8 函数式编程实践入门

    Anto Aravinth从事软件行业已经6年多了。他开发了许多用新技术编写的系统。Anto了解JavaScript的基础知识及其工作方式,并培训了许多人。Anto在业余时间也做OSS,他喜欢打乒乓球。 Srikanth Machiraju作为开发人员、架构师、技术培训师和社区发言人,拥有超过10年的工作经验。他目

    2024年02月08日
    浏览(40)
  • 软件测试/自动化测试/测试开发/性能测试经典好书推荐

    目录 前言 测试理论与实践 性能测试 安全测试 自动化测试 编程语言与开发技能 管理技能 软件测试入行容易进阶难。从测试小白成长为测试经理、总监级别人才,要跨越长长的技术栈升级之路,挑战非常高的综合能力要求。 大牛都是相似的:具备扎实的测试方法论基础,能

    2024年02月09日
    浏览(68)
  • 【好书推荐】AI时代架构师修炼之道:ChatGPT让架构师插上翅膀

    目录 前言 ChatGPT对架构师工作的帮助 快速理解和分析需求 提供代码建议和解决方案 辅助系统设计和优化 提高团队协作效率 如何使用ChatGPT提高架构师工作效率 了解用户需求和分析问题 编码实践和问题解决 系统设计和优化建议 团队协作和沟通效率提升 知识管理和文档生成

    2024年02月06日
    浏览(55)
  • 《Excel数据透视表应用大全》《小团队管理:如何轻松带出1+1>2的团队》好书推荐

    这期将为大家推荐两本好书:《Excel数据透视表应用大全》和《小团队管理:如何轻松带出1+1>2的团队》 本书全面系统地介绍了Excel 2019和Excel 365数据透视表的技术特点和应用方法,深入揭示数据透视表的原理,并配 合大量典型实用的应用实例,帮助读者全面掌握Excel 2019和

    2024年02月07日
    浏览(55)
  • 【好书推荐】ChatGPT 驱动软件开发:AI 在软件研发全流程中的革新与实践

    计算机技术的发展和互联网的普及,使信息处理和传输变得更加高效,极大地改变了金融、商业、教育、娱乐等领域的运作方式。数据分析、人工智能和云计算等新兴技术,也在不断地影响和改变着各个行业。 如今,我们正在见证人工智能技术的突破性发展。以OpenAI的ChatG

    2024年02月06日
    浏览(92)
  • 点云算法好书推荐(3D Point Cloud Analysis 传统、深度学习和可解释的机器学习方法)附下载链接

    书籍介绍: 本书介绍了点云;它在工业中的应用,以及最常用的数据集。它主要关注三个计算机视觉任务——点云分类、分割和配准——这是任何基于点云的系统的基础。对传统点云处理方法的概述有助于读者快速建立背景知识,而对点云方法的深度学习包括对过去几年的突

    2024年02月12日
    浏览(46)
  • Python网络爬虫库urllib详解

    了解Python标准库中的urllib模块,掌握URL解析、发送HTTP请求、文件下载等操作。

    2024年02月08日
    浏览(53)
  • 浅谈 Python 网络爬虫的那些事(文末送书7.0)

    在大数据、人工智能应用越来越普遍的今天,Python 可以说是当下世界上热门、应用广泛的编程语言之一,在人工智能、爬虫、数据分析、游戏、自动化运维等各个方面,无处不见其身影。随着大数据时代的来临,数据的收集与统计占据了重要地位,而数据的收集工作在很大程

    2024年02月08日
    浏览(52)
  • 网络爬虫——urllib(2)

     ❤️❤️❤️网络爬虫专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️ Python网络爬虫_热爱编程的林兮的博客-CSDN博客  前篇讲解了urllib的基本使用、一个类型六个方法与下载相关内容,这篇继续讲解urlib的其他使用方法。 在将这个之前我们先来看看

    2024年02月08日
    浏览(38)
  • 网络爬虫——urllib(5)

     ❤️❤️❤️网络爬虫专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️ Python网络爬虫_热爱编程的林兮的博客-CSDN博客 上一篇我们讲解有关ajax的相关案例,下面我们来学习新的关于urllib的知识。 简介: HTTPError类是URLError类的子类 导入的包urllib.erro

    2024年02月06日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包