立即注册

编程论坛

广告联系qq1031180668广告位
查看: 347|回复: 0

[python] 简单了解get请求实现爬取百度搜索页

[复制链接]
  • ta_mind
    擦汗
    2019-3-27 07:25
  • classn_01: 72 classn_02

    [LV.6]常住居民II

    1018

    主题

    1739

    帖子

    3533

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    3533

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    发表于 2018-7-17 15:40:31 | 显示全部楼层 |阅读模式
    一般HTTP请求提交数据,需要编码成 URL编码格式,然后做为url的一部分,或者作为参数传到Request对象中。
    关于url编码可以看下这个帖子:
    python3urllib中的url编码与解码http://www.c0ks.com/thread-5489-1-1.html
    (出处: 编程论坛)


    Get方式

    GET请求一般用于我们向服务器获取数据,比如说,我们用百度搜索 编程论坛https://www.baidu.com/s?wd=编程论坛

    get请求和post请求

    get请求和post请求

    get请求头:GET /s?wd=%E7%BC%96%E7%A8%8B%E8%AE%BA%E5%9D%9B HTTP/1.1
    在其中我们可以看到在请求部分里,http://www.baidu.com/s? 之后出现一个长长的字符串,其中就包含我们要查询的关键词编程论坛,于是我们可以尝试用默认的Get方式来发送请求。

    [Python] syntaxhighlighter_viewsource syntaxhighlighter_copycode
    # urllib_get.py
    
    import urllib.request
    
    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())


    这样就完整的爬取到了关键词为“编程论坛”的百度搜索页










    不积跬步,无以至千里
    游客
    回复
    您需要登录后才可以回帖 登录 | 立即注册

    手机版|Archiver|小黑屋|sitemap| 编程论坛 - 一个单纯的编程学习交流论坛 ( 豫ICP备15032706号 )

    GMT+8, 2019-6-19 00:56 , Processed in 1.082435 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表