首页 > 编程语言 >自学Python爬虫笔记(day1)

自学Python爬虫笔记(day1)

时间:2023-04-04 12:35:09浏览次数:35  
标签:浏览器 Python 爬虫 day1 HTML 服务器 源代码 页面

环境python3.9版本及以上,开发工具pycharm

 

君子协议:robots.txt协议

  规定了网站中哪些数据可以被爬虫爬取哪些不可以被爬虫爬取

 

 

下面是我学习的第一个爬虫的开发:

from urllib.request import urlopen

url = "http://www.baidu.com"

resp = urlopen(url)
# print(resp.read().decode("utf-8·"))      # 此时拿到的是页面源代码

with open("mybaidu.html", mode='w', encoding='utf-8') as f:
    f.write(resp.read().decode("utf-8"))

 如果将URL的地址改成:https://www.baidu.com,

得到的mybaidu.html为:

此时表示当前URL会被替换为http://,具体原理未知。

 

接下来是web请求全过程:

1.服务器渲染

  含义就是我们在请求服务器的时候,服务器直接把数据全部写入到HTML中,浏览器就能直接拿到带有数据的HTML内容。

  这里我们依旧以百度为例。在访问百度时,浏览器会把这一次请求发送到百度的服务器,由服务器接收到这个请求,然后加载一些数据,返回给浏览器,再由浏览器进行显示。注意:百度的服务器返回给浏览器的不直接是页面,而是页面源代码(由HTML,css,js组成),再由浏览器把页面源代码进行执行,然后把执行之后的结果展示给用户,所以我们能直接看到上一节的内容,我们拿到的是百度的源代码。具体过程如图:

 由于数据是直接写在HTML中,所以我们能看到的数据都在页面源代码中能找到。

 这种网页一般都相对比较容易就能抓取到页面内容。

2.前端JS渲染

  这种机制一般是第一次请求服务器返回一堆HTML框架结构,然后再次请求到真正保存数据的服务器,由这个服务器返回数据,最后在浏览器上对数据进行加载。具体过程如图:

这样做的好处是服务器那边能缓解压力,而且分工明确比较容易维护。典型如京东。

标签:浏览器,Python,爬虫,day1,HTML,服务器,源代码,页面
From: https://www.cnblogs.com/Hyun79/p/17283030.html

相关文章

  • 反爬虫常见策略总结
    有爬虫就有反爬虫,这都是相辅相成的,对于长时期从事在爬虫行业的技术员来说,时刻要了解对应网站的反爬机制,才能稳定获取数据。下面就是我这几年接触过的反爬的一些案例,供大家参考下。反爬虫反爬虫,即应对爬虫进行反制的统称,主要区分“正常用户”与“机器人”的一种策略统称。认识反......
  • Python基础【20】匿名函数和可迭代函数
      reduce函数和map函数:   ......
  • opencv-python 4.10.4. 反投影直方图
    理论它由MichaelJ.Swain,DanaH.Ballard在他们的论文“Indexingviacolorhistograms”中提出。用简单的话来说,它到底是什么?它用于图像分割或查找图像中感兴趣的对象。简单地说,它创建了与输入图像大小相同(但是是单一通道)的图像,其中每个像素对应于该像素属于对象的概率。在......
  • python把mp4转mp3
    预先下载Pipinstallmoviepyfrommoviepy.editorimport*defoutputmp3(input_path,output_path):listdir=os.listdir(input_path)#获得路径所有文件名mp4namelist=[namefornameinlistdirifname.endswith('.mp4')]#筛选出所有MP4forfil......
  • Python __ Pandas
    简介可以看做是Excel是基于Numpy的.优点:处理表格数据(混杂数据)需要引用:importpandasaspdSeries(无用)类似于Numpy的一维数组优点:相较于Nump索引功能强大输出默认带索引:(当为字典是,,默认键是索引)s4=pd.Series([9.53,9.62,9.72])创建时可以指定索引:s5=pd.Series([1,np......
  • 爬虫遇到了点问题
    正常在写一些爬虫代码的时候多少都会出点小问题,一位合格的程序员应该会认真排除并加以解决错误,如果是新手看着满屏的代码可能会一筹莫展。golang爬某网站代码优化后,运行报了如下的错,找了半小时才找到原因,在此记录一下。代码是这样的:有一个interface类型的Parser:typeParse......
  • Python3内置函数之H系列
    1、hasattr()hasattr()是Python内置函数之一,用于检查一个对象是否具有指定的属性或方法。 2、hash()在Python中,hash()函数用于获取给定对象的哈希值(散列值),即对象的唯一标识符。哈希值是一个整数,具有以下特点:对于同一个对象,在程序的不同执行期间,哈希值保持不变。对于......
  • 爬虫中的代理问题
    最近身边很多人都遇到爬虫中的爬虫ip问题,写下这篇博客来记录自己所学,希望可以帮助到你们。可能很多人都会问为什么我需要用爬虫ip呢?不用不可以吗?用了爬虫ip之后发现爬虫抓取数据的速度反而下降了不少于是放弃爬虫爬虫ip的使用。如果我们只是进行少量数据的爬取,用本机的IP与User-......
  • 全网最详细中英文ChatGPT-GPT-4示例文档-智能AI辅助写作从0到1快速入门——官网推荐的
    目录Introduce简介setting设置Prompt提示Sampleresponse回复样本APIrequest接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字,生成流畅和有趣的回答。如果你想跟上AI时代的潮流......
  • Python字符串模糊匹配
    四种模糊匹配方法1、ratio()——使用纯LevenshteinDistance进行匹配。2、partial_ratio()——基于最佳的子串(substrings)进行匹配3、token_set_ratio——对字符串进行标记(tokenizes)并在匹配之前按字母顺序对它们进行排序 4、token_set_ratio——对字符串进行标记(tokenizes)并......