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 requestsurl = '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的字典

Python经验分享

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

Python学习路线

这里把Python常用的技术点做了整理,有各个领域的知识点汇总,可以按照上面的知识点找对应的学习资源。
在这里插入图片描述

学习软件

Python常用的开发软件,会给大家节省很多时间。
在这里插入图片描述

学习视频

编程学习一定要多多看视频,书籍和视频结合起来学习才能事半功倍。
在这里插入图片描述

100道练习题

在这里插入图片描述

实战案例

光学理论是没用的,学习编程切忌纸上谈兵,一定要动手实操,将自己学到的知识运用到实际当中。
在这里插入图片描述
最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

​​​​​​​

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 是的,Python非常适合初学者学习编程。Python是一种简单易学的高级编程语言,语法简洁易懂,容易阅读和理解,这使得初学者能够更快地上手并快速编写一些有用的代码。Python还有丰富的库和工具,可以帮助初学者快速开发出一些实用的应用程序。此外,Python在数据科学、机器学习和人工智能领域也非常流行,因此学习Python可以让初学者进入这些领域的门槛更低。 ### 回答2: Python非常适合初学者学习。首先,Python的语法相对简单和易于理解,没有复杂的符号和关键词。这使得初学者可以更轻松地理解和编写Python代码。 其次,Python的排错信息相对友好。当初学者犯错误时,Python会提供详细的错误提示信息,帮助他们理解问题并找到解决方法。 此外,Python拥有丰富的资源和支持。有许多优秀的学习资料、教程和社区可供初学者参考。这些资源可以帮助他们更好地理解Python的概念和技巧,并提供实践和交流的机会。 Python还有大量的第三方库和框架,可以用于各种领域的开发,例如Web开发、数据分析、人工智能等。这意味着初学者可以将Python应用到自己感兴趣的领域,并且能够找到相关的开发工具和案例。 总而言之,Python适合初学者学习。它的简单语法、友好的排错信息、丰富的资源和广泛的应用领域使其成为一门理想的编程语言,可以帮助初学者快速入门并建立起编程的基础。 ### 回答3: Python是一种非常适合初学者学习的编程语言。首先,Python拥有简洁、易读的语法,使得初学者可以更容易地理解和编写代码。相比于其他编程语言Python的语法更加类似于我们日常使用的自然语言,没有过多的符号和复杂的语法规则,使得初学者能够更快地上手。 其次,Python具有丰富的学习资源和活跃的社区支持。无论是官方文档、教程还是在线课程,Python的学习资源非常丰富。而且,由于Python广泛应用于科学计算、数据分析、人工智能等领域,所以有很多有经验的开发者和爱好者愿意分享自己的知识和经验,提供帮助和指导。初学者可以通过参与各种Python社区活动,与其他学习者和专家交流,共同提高。 此外,Python拥有强大的生态系统和广泛的应用领域。Python提供了许多功能强大并且易于使用的库和框架,如NumPy、Pandas、TensorFlow等,可以方便地进行数据分析、机器学习等任务。此外,Python还广泛应用于Web开发、网络爬虫、自动化测试等领域。初学者可以通过学习Python,很快掌握一些实用的编程技能,并且有机会参与到各种有趣和有挑战性的项目中。 总结来说,Python是一种非常适合初学者学习的编程语言,因为它简洁易读、拥有丰富的学习资源和活跃的社区支持,同时还具有强大的生态系统和广泛的应用领域。无论是想要入门编程还是深入学习编程,选择Python都是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员二飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值