zoukankan      html  css  js  c++  java
  • 爬虫学习(三)——get请求参数解析

    get请求

           用户输入搜索的内容,发送请求,将请求的内容保存起来。

           get请求的本质是在地址栏中输入参数进行的一种请求方式。

     

    解析参数使用urllib.parse

    import urllib.parse

    # 在百度搜索“中国”关键字,得到的得到的url如下:
    string= "https://www.baidu.com/s?ie=utf-8&word=%E4%B8%AD%E5%9B%BD&tn=98537121_hao_pg"

    #unquote()反应用,解析参数,将二进制转成我们能看懂的中文形式

    string = urllib.parse.unquote(string)

    print(string)

    # 显示结果:

    https://www.baidu.com/s?ie=utf-8&word=中国&tn=98537121_hao_pg

     

     第一种方式

    country =input("请输入要检索的信息")
    # 输入内容:王家兴

    # 引用,即解析参数,将中文转换成为二进制形式
    # 对指定的参数径解析
    string = urllib.parse.quote(country)

    # 将参数写成字典的格式
    data = {
    "ie":"utf-8",
    "word":"%s"%string
    }

    # 拼接路由

    lt = []

    for ie,word in data.items():

          lt.append(ie+"="+word)

    # join()函数的作用是将将“&”作为分隔符对列表lt中的字符串进行拼接
    var ="&".join(lt)

    string= "https://www.baidu.com/s?%s"%var
    print(string)

    # 显示结果:
    # https://www.baidu.com/s?ie=utf-8&word=%E7%8E%8B%E5%AE%B6%E5%85%B4

     

    第二种方式

    # 将参数写成字典的格式
    data = {
    "ie":"utf-8",
    "word":"澳大利亚"
    }
    # urlencode()函数是专门对url进行操作的函数,并且把参数编码成为url类型的数据
    urldata = urllib.parse.urlencode(data)

    print(urldata)
    # 显示结果:
    # ie=utf-8&word=%E6%BE%B3%E5%A4%A7%E5%88%A9%E4%BA%9A

    # 对url进行拼接
    urlall= "https://www.baidu.com/s?%s"%urldata

    # 显示结果:
    print(urlall)
    # https://www.baidu.com/s?ie=utf-8&word=%E6%BE%B3%E5%A4%A7%E5%88%A9%E4%BA%9A

     

     

    ajax的GET请求

     请求头信息(浏览器请求头信息)

    1. Request URL:
      https://movie.douban.com/top250?start=25&filter=
    2. Request Method:
      GET
    3. Status Code:
      200 OK
    4. Remote Address:
      154.8.131.165:443
    5. Referrer Policy:
      unsafe-url
    爬虫代码如下:
    import urllib.request

    import urllib.parse
    url = "https://movie.douban.com/top250?"
    start = int(input("输入要查看到电影的页码:"))
    data = {
    "start": (start - 1) * 25,
    "filter": "",
    }
    headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"}
    data = urllib.parse.urlencode(data)
    url+=data
    print(url)
    request =urllib.request.Request(url,headers = headers)
    response = urllib.request.urlopen(request)
    print(response.read().decode("utf8"))



  • 相关阅读:
    python基础之网络及网络编程
    三:C语言基础复习--指针(指针常量,常量指针,指针数组,数组指针)
    一:C语言基础复习--控制结构
    将python源文件打包成exe文件
    Python ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。
    解决 java “错误:编码GBK 的不可映射字符”
    Fiddler小技巧之添加请求耗时Timetaken/qIP/请求方法Method列
    Python中如何打印空行
    Thinkpad F2不能进行重命名的问题
    Notepad++安装xml插件
  • 原文地址:https://www.cnblogs.com/kuangkuangduangduang/p/10364556.html
Copyright © 2011-2022 走看看