欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

爬虫快速入门——Get请求的使用

程序员文章站 2022-06-22 09:36:00
直接上代码,解释在注释,不论评论留言,必回# 项目名称:# 项目简介:# 作 者:key# 开发时间:2020/10/25 8:54from urllib.request import urlopen, Request # 打开url,和封装请问from fake_useragent import UserAgent # 获取headersfrom urllib.parse import quote # 转为为url使用的Unicode编码from urllib.parse im...

直接上代码,解释在注释,不懂评论留言,必回

# 项目名称:
# 项目简介:
# 作   者:key
# 开发时间:2020/10/25 8:54

from urllib.request import urlopen, Request  # 打开url,和封装请问
from fake_useragent import UserAgent  # 获取headers
from urllib.parse import quote  # 转为为url使用的Unicode编码
from urllib.parse import urlencode  # 和quote功能相同,但是传入字典,可以一次转化多个参数,并完成拼接
import random

# 这是我们直接在百度上搜索武汉学院,得到的url
# url ='https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=%E6%AD%A6%E6%B1%89%E5%AD%A6%E9%99%A2&oq=%25E6%25AD' \
#       '%25A6%25E6%25B1%2589%25E5%25AD%25A6%25E9%2599%25A2&rsv_pq=ad90e4730010b099&rsv_t=cbd2ILLVJvfZhsQ2Z' \
#       '%2BtWYSyWCVqrPyPGSDeK4L2E%2FXMbeuI2lbvliJVzzxs&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_btype=t '


# 但实际的呢?我们发出请求响应测试,只需要https://www.baidu.com/s?wd='武汉学院'就行了
# url ="https://www.baidu.com/s?wd='武汉学院'"

# 但是呢,中文的武汉学院,url并不能识别
# 所以,我们要用url.parse里面的quote对象,转化为url可以识别的unicode编码
# print(quote('武汉学院'))    # 输出信息: %E6%AD%A6%E6%B1%89%E5%AD%A6%E9%99%A2
# url = "https://www.baidu.com/s?wd='%E6%AD%A6%E6%B1%89%E5%AD%A6%E9%99%A2'" # 如果在浏览器访问 wd之后就不需要加字符串

# 一般使用{}.format(quote("输入信息"))去替换
url = 'https://www.baidu.com/s?wd={}'.format(quote('武汉学院'))

# 使用urlencode进行转化
# args = {
#     'wd': "武汉学院",
#     "ie": 'utf-8'
# }
# url = str("https://www.baidu.com/s?{}".format(urlencode(args)))
# print('https://www.baidu.com/s?{}'.format(urlencode(args)))
# 打印的信息:https://www.baidu.com/s?wd=%E6%AD%A6%E6%B1%89%E5%AD%A6%E9%99%A2&ie=utf-8

# 开发者工具获取headers
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/84.0.4147.89 Safari/537.36 "
}

# 创建对象获取headers
# headers = {
#     "User-Agent": UserAgent().random
# }


# 封装
request = Request(url, headers=headers)

# 访问
response = urlopen(request)

# 打印返回信息,一定要用decode()转化,才是可读数据
print(response.read().decode())

本文地址:https://blog.csdn.net/weixin_43402353/article/details/109270347