《0基础》学习Python——第十九讲__爬虫\<2>

一、用get请求爬取一般网页

        首先由上节课我们可以找到URL、请求方式、User-Agent以及content-type

即:在所在浏览器页面按下F12键,之后点击网路-刷新,找到第一条双击打开标头即可查看上述所有内容,将上述URL、User-Agent所对应的值复制下来

例如我们想爬取下面这个页面

那么我们只需按下F12,按照我前面讲的,找到其URL、User-Agent,以及请求方式和内容格式,

分别如下:

1、

2、

3、

4、

以上便是爬取网页的关键用具了,接下来将开始写代码去爬取他的页面

首先我们获取了URL,那么变要进行get请求,但是我们需要有一个身份来获取网页的数据,如果不伪装一个身份,而直接以编译器的形式去爬取,大多数网页会识别到你是个爬虫,是个小偷,想要过来偷取我的数据,会直接将你驱逐出去,而不让你爬取他的数据,所以我们就使用UA伪装的方法去将自己伪装成一个浏览器,这样多数的网页就不会驱逐你,是你能够用爬取数据。

完成UA伪装后使用get请求,得到url对应的网页数据,就用content-type上看到的方式去打印这段数据,代码如下:

import requests


head = {  #进行UA伪装
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"
}

url = "https://www.sogou.com/web?query=刘亦菲"

# 2、发送请求 get带参数使用params参数
response = requests.get(url, headers=head)

#打印数据,以content-type中写的方式去打印
print(response.text)

输出结果为:很长很长的数据

以上就是基础的打印出来了这个网页的所有数据,那么接下来就要将这段数据保存下来,然后对这段数据进行处理:

import requests

head = {  #进行UA伪装
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"
}

url = "https://www.sogou.com/web?query=刘亦菲"

# 2、发送请求 get带参数使用params参数
response = requests.get(url, headers=head)

#打印数据,以content-type中写的方式去打印

with open("./dilireba.html", "w", encoding="utf8") as fp:
fp.write(response.text)
print(type(response.text))

即将那一幅大串的数据存入html文件,dilireba.html,html是一个网页的原码存放文件,在左侧文件夹中找到这个文件并打开,

可以发现右上角有几个浏览器的logo,点击电脑里有的那个即可直接打开这个网页,得到如下结果

此时虽然页面摸样和之前那个一样,但是注意地址栏的地址,显示的是本地地址,即说明当前这个页面爬取成功,这看起来没什么用,但是后面我们会慢慢讲解为什么,比如从卖二手车的网页爬取车辆的图片以及名称报价,以及爬取网页的vip视频,小说的全部内容等等

下面是定义函数的方法去写上述的代码,仅供参考

import requests #导入爬虫库

head = {  #进行UA伪装
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"
}

# 这是get请求带参数的模式
def get_param():
    
    # 1、url
    url = "https://www.sogou.com/web?"

    # 2、发送请求 get带参数使用params参数
    response = requests.get(url, headers=head, params={"query": "刘亦菲"})

    # 3、获取想要的数据
    with open("./dilireba.html", "w", encoding="utf8") as fp:
        fp.write(response.text)
        print(type(response.text))

if __name__ == '__main__':
        get_param()

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 07:02:04       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 07:02:04       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 07:02:04       45 阅读
  4. Python语言-面向对象

    2024-07-20 07:02:04       55 阅读

热门阅读

  1. Docker 和 k8s 之间是什么关系?

    2024-07-20 07:02:04       14 阅读
  2. 软考高级第四版备考--第25天干系人绩效

    2024-07-20 07:02:04       16 阅读
  3. RK3399 Android7.1.2识别UAS移动硬盘问题

    2024-07-20 07:02:04       15 阅读
  4. 题解:[ABC358E] Alphabet Tiles

    2024-07-20 07:02:04       18 阅读
  5. Flutter 教程实战笔记

    2024-07-20 07:02:04       17 阅读
  6. MQTT剩余长度字段的编码方案

    2024-07-20 07:02:04       17 阅读