Python爬虫入门(一)(适合初学者)

这篇具有很好参考价值的文章主要介绍了Python爬虫入门(一)(适合初学者)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python爬虫入门(一) (适合初学者)

关于爬虫是什么,怎样保证爬虫的合法性小编在这就不再过多的阐述,从本章起,小编将和大家一起分享在学习python爬虫中的所学,希望可以和大家一起进步,也希望各位可以关注一下我!
首先我们来初步了解下如何使用开发者工具进行抓包。以 https://fanyi.baidu.com/ 为例。在网页界面右键点击检查,或使用CTRL+SHIFT+I打开。
爬虫入门,爬虫,爬虫
如图打开了开发者工具后我们点击网络得到如上界面。接着按照提示按CTRL+R进行刷新。刷新后如下图所示:
爬虫入门,爬虫,爬虫
此时我们即可看到我们获取到了很多很多的数据包,但是想要完成一个爬虫程序的第一步就是在这众多的包中,找到正确的API数据接口。通俗点将就是你想要获得一个小球,而这个小球藏在一个小箱子里,而此时有很多很多个小箱子,想要获得小球则需要找出小球究竟藏在哪个箱子里。一般在实际操作中我们只需要使用到上图小编圈出来的两个地方,一个是全部、另一个是Fetch/XHR。在全部中会显示所有请求获取到的包其中包括:网页源码、css、js、图片、ajax等。而在Fetch/XHR中则只能看到ajax请求所获得的数据包。ajax请求一般是对动态数据进行请求,即前端向后端发起请求,动态请求到后端数据库中的数据,并将这些数据展示在前端网页中。(可能会感觉听起来云里雾里,没关系哦,后面根据一个一个的例子可以更好的了解,或者小编以后更新django框架时会细讲ajax请求)

接下来我们进入爬虫的第一个程序(百度翻译的单词爬虫)

在百度翻译中我们可以输入一个单词,然后网页会动态的在界面上给我们展示这个单词的意思,因此我们可以非常非常非常自信的确定,单词意思的数据是通过动态请求得到的,既然说动态请求得到的,那么又可以确定这八成就是一个ajax请求。因此我们选中Fetch/XHR。
爬虫入门,爬虫,爬虫
根据观察此时看到Fetch/XHR中只有这三个数据包,但点开查看其响应(即返回值)时确发现好像没有我们需要的数据。这个什么呢,不必慌张,因为我们并还没有在左边输入单词的框中输入过单词,于是我们可以在左边随意的输入一个英文单词进行测试:
爬虫入门,爬虫,爬虫
当我们输入完一个单词后发现,右边又抓到了很包,对这些抓到的包进行分析可以找到如下这个数据包:
爬虫入门,爬虫,爬虫
爬虫入门,爬虫,爬虫
爬虫入门,爬虫,爬虫
由上述三种图可以看出,这个包中就藏着我们想要的数据。通过查看该包的标头可以确定,请求数据的请求URL是:https://fanyi.baidu.com/sug,且发起的请求方式为POST,且根据Content-Type: application/json可以得出请求的返回值为json格式,在payload中可以分析出该POST请求需要携带一个名为kw的参数,参数的值为我们需要查询的单词。这时我们即可以弄清楚该网站查询单词的运行机制了:我们在查询框中输入英文单词,网页前端拿到我们输入的单词,通过ajax请求向https://fanyi.baidu.com/sug发起请求,并将我们输入的英文单词作为表单数据传输给后端,后端根据我们输入的单词在数据库中查询该单词,拿到该单词的意思然后再次返回给前端并展示出来。接下来就进入令人激动的coding代码部分。

代码部分
1、安装requests包(在cmd命令行中输入以下语句进行自动下载安装):
前提需要电脑上已经装有python且配置了环境变量

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

爬虫入门,爬虫,爬虫
2、导入requests包并确定url:

import requests
url = 'https://fanyi.baidu.com/sug'

3、进行UA伪装

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

UA伪装:可以理解为将我们的爬虫程序伪装起来,增加请求成功的可能性。
爬虫入门,爬虫,爬虫
只需在数据包的标头中,拉到最下面,即可以找到这个User-Agent,将其复制下来,像小编一样在python用字典进行封装即可。
4、确定参数,并对数据接口发起请求获得返回结果

data = {     #post请求携带的参数
       'kw':'dog'
   }
#对目标url发起post请求
response = requests.post(url=url,headers=headers,data=data).json()
print(response)

结果如下:
爬虫入门,爬虫,爬虫
至此一个最最最简单的爬虫程序就写完了,是不是很简单!接下来我们对程序进行完善,所有代码如下:

import requests

def spider(url,headers,data):

    response = requests.post(url=url, headers=headers, data=data).json()  # 对目标url发起post请求
    for key in response['data'][0]:
        print(key,response['data'][0][key])

def main():

    url = 'https://fanyi.baidu.com/sug'  #需要请求的url
    headers = {  #进行UA伪装
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56'
    }
    while True:  #使程序进入死循环
        kw = input("输入需要查询的单词:")
        data = {     #post请求携带的参数
            'kw':kw
        }
        spider(url=url,headers=headers,data=data)  #调用自定义函数spider

if __name__ == '__main__':

    main()

爬虫入门,爬虫,爬虫
这样一个简单的基于爬虫的单词查询器就完成啦!其中对json数据进行提取的代码如果有看不懂的小伙伴可以去学习一个python的字典。
希望该文章可以帮助到你!如果觉得有用可以关注一下我哦!后序会写更多的例子。文章来源地址https://www.toymoban.com/news/detail-821843.html

到了这里,关于Python爬虫入门(一)(适合初学者)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • html个人信息表制作(适合初学者)

    编写HTML头部,设置标题和链入外部CSS设置。 在头部设置中,加入了style属性,在初步操作时,大家可以先对属性具体设置空出来,编写玩body部分之后,再回来编写style属性。 那么现在我们来正式编写body部分。 在 body 和 /body 中间设置表格属性。

    2024年02月10日
    浏览(34)
  • 【001-Java基础练习】-适合初学者的练习

    用于巩固java基础知识,初学者多练多敲,熟悉代码,熟悉语法就ok。 练习1、从控制台获取Java、ps、HTML三门课程的成绩,计算总分和平均分(平均分保留2位小数,要求四舍五入),输出总分和平均分 练习2、控制台输入学生信息,学号 姓名 性别 年龄,控制台展示学生信息如

    2024年02月01日
    浏览(26)
  • CentOS 7安装全解析:适合初学者的指导

    目录 前言 一.centos安装 1.下载镜像文件 2.安装   二.远程连接,换源 1.下载并且使用MobaXtermMobaXterm free Xserver and tabbed SSH client for Windows (mobatek.net)https://mobaxterm.mobatek.net/ 远程连接 2.换源 在当今的信息化时代,服务器操作系统扮演着至关重要的角色。无论是搭建个人网站、部署

    2024年01月23日
    浏览(24)
  • 适合初学者的 机器学习 资料合集(可快速下载)

    AI时代已经来临,机器学习成为了当今的热潮。但是,很多人在面对机器学习时却不知道如何开始学习。 今天,我为大家推荐几个适合初学者的机器学习开源项目,帮助大家更好地了解和掌握机器学习的知识。这些项目都是开源的,且已经加入了 Github加速计划 ,可以 快速下

    2024年01月22日
    浏览(29)
  • 适合初学者的 7 个有趣的区块链项目创意

    许多人认为区块链是为比特币提供动力的技术,但它的范围远不止于此。 简单来说,它是一个分布式数据库,维护着所有已执行交易的记录,并在参与方之间共享。在这里,在本文中,我们将讨论一些可以在区块链中实现的最有趣的项目想法。但在此之前,让我们先了解一下

    2024年02月02日
    浏览(28)
  • TCGA下载和表达矩阵整理:最适合初学者的教程

    本文首发于公众号: 医学和生信笔记 “ 医学和生信笔记 ,专注R语言在临床医学中的使用,R语言数据分析和可视化。主要分享R语言做医学统计学、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。 这篇推文适合初学者看,大佬酌情阅读! 从打开网址开始教

    2023年04月08日
    浏览(62)
  • “C“浒传——初识C语言(更适合初学者体质哦!)

    第一章  “C“浒传——初识C语言(更适合初学者体质哦!) 目录 系列文章目录    前言  一、什么是C语言 二、第一个C语言程序  三、数据类型 四、变量,常量 4.1 定义变量的方法 4.1.1 变量的命名 4.2 变量的分类 4.3 变量的使用 4.4 变量的作用域和生命周期 4.4.1 作用域

    2024年02月07日
    浏览(25)
  • 2023 年 7 个适合初学者的 Vue.js 教程

    这个精心挑选的列表将帮助 Vue 初学者找到七个很棒的资源来开始学习 Vue。 我相信你来这里是为了寻找一些资源来开始学习 Vue.js 框架的奇妙旅程,无论是作为第一个工具还是你熟悉的其他框架的附加工具。不管怎样,你很幸运,因为这就是我们将在这篇文章中介绍的内容。

    2024年02月12日
    浏览(18)
  • 7 个适合初学者的项目,可帮助您开始使用 ChatGPT

    推荐:使用 NSDT场景编辑器快速搭建3D应用场景 从自动化日常任务到预测复杂模式,人工智能正在重塑行业并重新定义可能性。 当我们站在这场人工智能革命中时, 我们必须了解它的潜力并将其整合到我们的日常工作流程中。 然而。。。我知道开始使用这些新技术可能会让

    2024年02月09日
    浏览(35)
  • 【MySQL】MySQL事务保姆级教程(适合MySQL初学者学习)

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:重温MySQL 无论是在校招、社招,亦或者大学计算机专业、软件工程等相关面试或者考试中,MySQL事务的相关知识都是必

    2024年02月16日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包