zoukankan      html  css  js  c++  java
  • 爬虫基础一

    学习内容:

    1.爬虫基本原理

    2.urllib库基本使用

    3.正则表达式基础


    1.response响应状态

    200代表成功,301跳转,404找不到页面,502服务器错误

    2.解析方式:直接处理,Json解析,正则表达式,BeautifulSoup,PyQuery,XPath

    3.保存数据:纯文本,关系型数据库,非关系型数据库,二进制文件

    4.urllib库:python内置的HTTP库

    urllib.request  请求模块   urllib.error   异常处理模块

    urllib.parse  url解析模块

    5.响应方式:response.read().decode('utf-8')

    6.请求方式:

    from urllib import request,parse
    url='http://httpbin.org/post'
    headers={
    }
    dict={  
    'name':'Germey'
    }
    data = bytes(parse.urlencode(dict),encoding='utf8')
    req=request.Request(url=url,data=data,headers=headers,method='post')
    reponse=request.urlopen(req)
    print(response.read().decode('utf-8'))

    7.正则表达式

    常见匹配模式

    w  匹配字母数字及下划线

    W  匹配非字母数字下划线

    s  匹配任意空白字符

    S  匹配任意非空字符

    d  匹配任意数字

    D  匹配任意非数字

    A  匹配字符串开始

      匹配字符串结束,如果存在换行,只匹配到换行前的结束字符串

    z  匹配字符串结束

    最常规的匹配

    import re
    content = 'Hello 123 4567 World_This is a Regex Demo'
    print(len(content))
    result = re.match('^Hellosdddsd(4)sw{10}.*Demo$',content)
    print(result)
    print(result.group())
    print(result.span())

    运行结果:

     泛匹配

    import re
    content = 'Hello 123 4567 World_This is a Regex Demo'
    result = re.match('^Hello.*Demo$',content)
    print(result)

    匹配目标

    import re
    content = 'Hello 123 4567 World_This is a Regex Demo'
    result = re.match('^Hellos(d+)sWorld.*Demo$',content)
    print(result)
    print(result.group(1))
    print(result.span())

    re.search扫描整个字符串并返回第一个成功的匹配

    总结:为匹配方便,能用search就不要match

    re.findall  搜索字符串,以列表形式返回全部能匹配的子串

    re.sub  替换字符串中每一个匹配的子串后返回替换后的字符串

    import re
    content = 'Hello 123 4567 World_This is a Regex Demo'
    re.sub('d+','',content)

    re.compile  将正则字符串编译成正则表达式对象,将一个正则表达式编译成正则对象,以便于复用该匹配模式

  • 相关阅读:
    VS 2005中 讨厌的"异常助手"
    三步一计与一步三计
    S+S 的微软定义
    PMBOK2004版44个过程的工具和技术的总结
    如何在WCF中使用自定义的Header,(典型场景:业务系统的登陆与使用)
    SaaS模式探讨
    SQL 2005的row_number,(oracle 的 rownum)
    关于Django的登录系统
    CSRF Failed: Referer checking failed no Referer
    docker 入门笔记
  • 原文地址:https://www.cnblogs.com/-2016/p/12210449.html
Copyright © 2011-2022 走看看