Python爬虫【urllib库模拟百度搜索并保存网页源代码】

该程序为入门级爬虫,巩固urllib库的基本使用

实现步骤

  1. 发送一个请求
  2. 分析获取请求的url地址,参数
  3. 处理参数并发送请求,获取响应
  4. 把得到的响应保存文件

需求:爬虫实现百度搜索并保存搜索后的网页源代码(第一页)
环境:Python 3.6
使用的库:urllib
使用的工具:Chrome,Pycharm

具体实现步骤如下


首先,导包

导入后续需要使用到的模块

import urllib.request
import urllib.parse

1.使用百度搜索任意内容

使用百度搜索得到了发送请求的url地址(这里搜索的是“苹果”)
请求的url地址

url = 'https://www.baidu.com/s?'  # ?后面还有需要添加的参数

2.分析请求的url地址

简单地分析这个url地址后,获取需要用到的参数:ie=utf-8,wd=“搜索的内容”

target = input('请输入需要搜索的内容:')  # 定义一个变量获取输入
data = {
    'ie': 'utf-8',  # 这个参数经过测试可有可无,保险起见还是加上
    'wd': target,  # 想要搜索的内容
}

3.处理参数并发送请求

# 对参数进行编码
data = urllib.parse.urlencode(data)
# 合并url
url = url + data
# 构造请求对象
request = urllib.request.Request(url, headers=headers)
# 发送请求
response = urllib.request.urlopen(request)

4.保存网页源代码

# 使用'wb'方式保存
with open('./result.html', 'wb') as fp:
    fp.write(response.read())
    # 如果仅使用'w'方式保存,需要进行解码处理:
    # fp.write(response.read().decode())

最后附上程序源代码

import urllib.request
import urllib.parse

# 准备需要发送请求的url
url = 'https://www.baidu.com/s?'
# 准备请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Acoo Browser 1.98.744; .NET CLR 3.5.30729)',
}

# 键盘读取需要搜索的内容
target = input('请输入需要搜索的内容:')
# url上的一些参数
data = {
    'ie': 'utf-8',
    'wd': target,
}
# 对参数进行编码
data = urllib.parse.urlencode(data)
# 合并url
url = url + data

# 构造请求对象
request = urllib.request.Request(url, headers=headers)

# 发送请求
response = urllib.request.urlopen(request)

# 保存文件
with open('./result.html', 'wb') as fp:
    fp.write(response.read())


发布了4 篇原创文章 · 获赞 0 · 访问量 359

猜你喜欢

转载自blog.csdn.net/u014532291/article/details/104238899