前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >爬虫入门--了解相关工具

爬虫入门--了解相关工具

作者头像
用户10950404
发布2024-08-11 08:46:33
680
发布2024-08-11 08:46:33
举报
文章被收录于专栏:人工智能

1.爬虫与python

首先我们要知道,爬虫一定要用Python么? 非也~ 用Java也行, C也可以,请各位记住,编程语言只是工具,抓到数据是你的目的,用什么工具去达到你的目的都是可以的,和吃饭一样, 可以用叉子也可以用筷子, 最终的结果都是你能吃到饭,那为什么大多数人喜欢用Python呢? 答案: 因为Python写爬虫简单,不理解? 问: 为什么吃米饭不用刀叉? 用筷子? 因为简单! 好用!

而Python是众多编程语言中, 小白上手最快, 语法最简单,而且如果要成为一名python全栈工程师,爬虫这项技能是有必要掌握的,而python有非常多的关于爬虫能用到的第三方支持库. 说直白点儿. 就是你用筷子吃饭, 我还附送你一个佣人. 帮你吃! 这样吃的是不是更爽了. 更容易了~

2.第一个爬虫

爬虫就是我们通过我们写的程序去抓取互联网上的数据资源. 比如, 此时我需要百度的资源. 在不考虑爬虫的情况下, 我们肯定是打开浏览器, 然后输入百度的网址, 紧接着, 我们就能在浏览器上看到百度的内容了. 那换成爬虫呢? 其实道理是一样的. 只不过, 我们需要用代码来模拟一个浏览器, 然后同样的输入百度的网址. 那么我们的程序应该也能拿到百度的内容. 对吧~

在python中, 我们可以直接用urllib模块来完成对浏览器的模拟工作~, 直接上代码

代码语言:javascript
复制
from urllib.request import urlopen

resp = urlopen("http://www.baidu.com")  # 打开 百度
print(resp.read().decode("utf-8"))  # 打印 抓取到的内容

我们可以把抓取到的html内容全部写入到文件中, 然后和原版的百度进行对比, 看看是否一致

代码语言:javascript
复制
from urllib.request import urlopen

resp = urlopen("http://www.baidu.com")  # 打开 百度

# print(resp.read().decode("utf-8"))  # 打印 抓取到的内容

with open("baidu.html", mode="w", encoding="utf-8") as f:  # 创建文件
    f.write(resp.read().decode("utf-8"))  # 保存在文件中

3.web请求的全过程

大家可以去补充一些前端的知识,学习爬虫我们要求的不多,只要能过看懂就可以,话不多说,直接上图~

接下来就是一个比较重要的事情了. 所有的数据都在页面源代码里么?

💡非也~ 完整的页面展示是通过将源代码渲染得到的,而常见的页面渲染有两种

3.1服务器渲染

服务器渲染,你需要的数据直接在页面源代码中就能搜到:

这个最容易理解,也是最简单的,含义呢就是我们在请求到服务器的时候,服务器直接把数据全部写入到html中,我们浏览器就能直接拿到带有数据的html内容,比如:

📖 由于数据是直接写在html中的, 所以我们能看到的数据都在页面源代码中能找的到的. 这种网页一般都相对比较容易就能抓取到页面内容

3.2前端JS渲染

这种就稍显麻烦了,这种机制一般是第一次请求服务器返回一堆HTML框架结构,然后再次请求到真正保存数据的服务器,由这个服务器返回数据,最后在浏览器上对数据进行加载,就像这样:

大多数页面这样做的好处就是可以缓解服务器的压力,就像我们平常访问一些购物页面,都是直奔主题,直接搜索自己想要的东西,虽然JS渲染无法直接获得我们爬取,我们还可以通过浏览器的调试工具。

📖那我们下一步介绍浏览器开发者工具,注意是开发者工具哦,功能也很强大,是我们以后学习的主要工具,当然还有pycharm~

4.浏览器工具

Chrome是一款非常优秀的浏览器. 不仅仅体现在用户使用上. 对于我们开发人员而言也是非常非常好用的.

对于一名爬虫工程师而言. 浏览器是最能直观的看到网页情况以及网页加载内容的地方. 我们可以按下F12来查看一些普通用户很少能使用到的工具.

其中,最重要的Elements,Console,Sources,Network。

4.1Elements

Elements是我们实时的网页内容情况,注意, 很多兄弟尤其到了后期,非常容易混淆Elements以及页面源代码之间的关系,这里我们重点强调一下:

🏷️🏷️

  1. 页面源代码是执行js脚本以及用户操作之前的服务器返回给我们最原始的内容
  2. Elements中看到的内容是js脚本以及用户操作之后的当时的页面显示效果
  3. 一个是写好的,一个是实时的

4.2Console

第二个窗口,Console是用来查看程序员留下的一些打印内容,以及日志内容的,我们可以在这里输入一些js代码自动执行。

4.3Source

第三个窗口, Source, 这里能看到该网页打开时加载的所有内容. 包括页面源代码. 脚本. 样式, 图片等等全部内容.

4.4network(重点)

第四个窗口, Network, 我们一般习惯称呼它为抓包工具. 在这里, 我们能看到当前网页加载的所有网路网络请求, 以及请求的详细内容. 这一点对我们爬虫来说至关重要.

其他更加具体的内容. 随着咱们学习的展开. 会逐一进行讲解.

5.小结

  1. 学习了爬虫的主要环境,并用代码模拟浏览器制作的百度页面
  2. 掌握浏览器开发者工具
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.爬虫与python
  • 2.第一个爬虫
  • 3.web请求的全过程
    • 3.1服务器渲染
      • 3.2前端JS渲染
      • 4.浏览器工具
        • 4.1Elements
          • 4.2Console
            • 4.3Source
              • 4.4network(重点)
              • 5.小结
              相关产品与服务
              云服务器
              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档