• urllib基础-利用网站结构爬取网页-百度搜索


      有的时候爬取网页,可以利用网站额结构特点爬取网页

      在百度搜索框中输入搜索内容,单击搜索,浏览器会发送一个带有参数的url请求。尝试删除其中的一些参数,只剩下wd这个参数。发现wd是搜索内容。这样程序可以根据不同的wd值,请求不同的网页。

      

     1 from urllib import request,parse
     2 
     3 # 构造请求对象
     4 def baidu(wd):
     5     # 爬取的网页
     6     base_url = 'http://www.baidu.com/s?'
     7 
     8     qs = {
     9         'wd' : wd
    10     }
    11 
    12     # 进行url编码
    13     qs = parse.urlencode(qs) # wd=hello
    14 
    15     # 构造请求对象
    16     req = request.Request(base_url + qs)
    17 
    18     # 发送请求
    19     response = request.urlopen(req)
    20 
    21     # 获取网页内容
    22     html = response.read().decode('utf-8')
    23 
    24     #打印网页
    25     print(html)
    26 
    27 
    28 if __name__ == "__main__":
    29     while True:
    30         wd=input('请输入要搜索的内容:')
    31         if wd == 'q': #输入 q 退出
    32             break
    33         baidu(wd) #下载网页

    浏览器中发送请求的url中包含汉字是不能请求成功的,需要将汉字进行url编码。(可以在“站长工具”中在线编码解码)。

    这里使用parse.urlencode()进行url编码。将编码之后的内容与原url进行拼接,形成完整的url。

  • 相关阅读:
    Appium 自动化测试配置wda的两种方式。
    brew install jenkins
    运算符,流程控制语句,单分支,双分支,多分支
    程序交互,数据类型,格式化输出
    编程语言介绍,变量和常量
    “Hello world! ”
    斐波那锲数列 冒泡排序
    AssetBundle
    animation 老动画
    animator 新动画
  • 原文地址:https://www.cnblogs.com/doitjust/p/9220762.html
Copyright © 2020-2023  润新知