Python 爬虫学习笔记(三)

pyhton 爬虫学习笔记(三)

【Python网络爬虫与信息提取】.MOOC. 北京理工大学

  • 信息标记的三种形式

    • XML(eXtensible Markup Language)

    • JSON(JavaScript Object Notation):

      • 有类型的键值对(key:value):字符串要加双引号“”
      • 多值用[ , ]组织,新的键值对作为值采用{ }
    • YAML(YAML Ain’t Makeup Language)

      • 无类型键值对(key:value):不用双引号
      • 缩进表示所属关系
      • “-”(减号)表达并列关系
      • “|” 表示整块数据
      • “#” 进行注释
    • 三种信息标记形式比较

      • XML

        • 最早的通用信息标记语言,可扩展性好,但繁琐
        • Internet上的信息交互与传递
      • JSON

        • 信息有类型,适合程序处理(js),较XML简洁

        • 移动应用云端和节点的信息接通,无注释

      • YAML

        • 信息无类型,文本信息比例最高,可读性好
        • 各类系统的配置文件,有注释易读
  • 信息提取的一般方法

    • 先解析信息标记形式,再提取关键信息

    • 无视信息标记形式,直接提取关键字

    • 融合方法 : 结合形式解析与搜索方法,提取关键信息

  • 基于BeautifulSoup库的内容查找方法

    • <>.find_all(name,attrs,recursive,string,**kwargs) //返回一个列表类型,存储茶查找的结果
     >>> import requests
     >>> r = requests.get("http://python.io/ws/demo.html")
     >>> demo = r.text
     >>> demo
     >>> soup = BeautifulSoup(demo,"html.parser")
     >>> soup.find_all('a')
     >>> soup.find_all(['a','b']) //给第一个参数传入一个列表
     >>> for tag in soup.find_all(True):
            print(tag.name) //打印文档中的所有tag标签
     >>> import re //引入正则表达式
     >>> for tag in soup.find_all(re.compile('b')): //查找以b开头的标签
            print(tag.name) //name:对标签名称检索
     >>> soup.find_all('p','course') //查找p标签中包含course字符串的信息
     >>> for link in soup.find('a'):
            print(link.get('href'))
     >>> soup.find_all(id='link1') //对属性进行约定
     >>> soup.find_all('a',recursive=False) //recursive:是否对子孙全部检索,默认True,为False表示只搜索当前节点的儿子节点信息
     >>> soup.find_all(string = "Basic Python") //string表示对标签(<>...</>)中的字符串进行检索
     >>> import re
     >>> soup.find_all(string = re.compile("python")) //检索含Python的所有字符串域
    

    扩展方法: <>.find()<>.find_parents()<>.find_parent()<>.find_next_siblings()<>.find_next_sibling<>.find_previous_siblings()<>.find_previous_sibling()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值