美文网首页
爬取百度搜索关键字对应的内容

爬取百度搜索关键字对应的内容

作者: 常伟波 | 来源:发表于2018-11-05 19:45 被阅读0次
    当我们搜索关键字的时候,计算机并不能直接读懂我们的语言,需要转化之后才能交给计算机识别,

    urllib.parse.urlencode()

    • 编码工作使用urllib.parse的urlencode()函数,帮我们将key:value这样的键值对转换**"key=value"这样的字符串
    • 解码工作可以使用urllib.parse的unquote()**函数。
    import urllib.parse
    
    word = {"wd" : "美女"}
    
    # 通过urllib.urlencode()方法,将字典键值对按URL编码转换,从而能被web服务器接受。
    result = urllib.parse.urlencode(word)  
    print(result)
    
    # 通过urllib.unquote()方法,把 URL编码字符串,转换回原先字符串。
    result = urllib.parse.unquote(result)
    print(result)
    
    image

    当我们使用Get方式,向服务器发起请求的时候,我们输入的中文是不能直接被计算机识别的, 如: 我们从百度搜索美女,链接如下:
    https://www.baidu.com/s?wd=美女
    最后会被转换成 十六进制的数据:https://www.baidu.com/s?wd =%E7%BE%8E%E5%A5%B3

    url = "http://www.baidu.com/s"
    word = {"wd":"美女"}
    word = urllib.parse.urlencode(word) #转换成url编码格式(字符串)
    newurl = url + "?" + word    # url首个分隔符就是 ?
    
    headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
    
    request = urllib.request.Request(newurl, headers=headers)
    
    response = urllib.request.urlopen(request)
    
    print (response.read())
    

    Post请求,跟Get请求很像,就是多了一个data参数,data首先需要进行编码,然后转换类型

    import urllib.parse as parse
    import ssl
    
    #https://httpbin.org/post为自带的测试url,可以返回我们发送到服务器的相关参数
    url = 'https://httpbin.org/post'
    
    #发起post请求要构造表单数据
    from_data = {
        'name':'某某某',
        'password':'xxxx12345',
        'age':18,
        'sex':1,
    }
    
    #post请求在给服务器传参数的时候,
    # 1.首先要使用urlencode编码
    # 2.最后传的参数一定是一个字节类型的
    
    #1.首先要使用urlencode编码
    from_data = parse.urlencode(from_data)
    #2.最后传的参数一定是一个字节类型的
    from_data = from_data.encode('utf-8')
    print(from_data)
    print(type(from_data))
    
    request = urllib.request.Request(url, data = from_data)
    response = urllib.request.urlopen(request)
    print (response.read())
    
    

    相关文章

      网友评论

          本文标题:爬取百度搜索关键字对应的内容

          本文链接:https://www.haomeiwen.com/subject/rshexqtx.html