python的爬虫(二)(适合新手)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43701019/article/details/98961995

——个人笔记


  • 解析数据(第1步)

    • 使用BeautifulSoup解析和提取网页中的数据,BeautifulSoup不是Python标准库,需要单独安装它。

    • 解析用法:BeautifulSoup(要解析的文本,‘解析器’)会返回一个<class ‘bs4.BeautifulSoup’> 对象。

      import requests
      from bs4 import BeautifulSoup #引入
      res = requests.get(' URL') 
      #第二个是html解析器,soup就是bs4.BeautifulSoup对象
      soup = BeautifulSoup( res.text,'html.parser') 	
      
  • 提取数据(第2步)

    • 得到了soup(bs4.BeautifulSoup对象)后,我们可以用find()与find_all()来提取数据中的内容。
    • 解析用法:以find()为例子,find(标签,属性),这样可以根据标签和属性来找到匹配的,两个参数至少要有一个(不止标签和属性两种,通常用这两个就足够了)。两个函数的区别就是,前者只会返回第一个符合要求的,后者会返回所有符合的。
    import requests
    from bs4 import BeautifulSoup
    url = 'URL'
    res = requests.get (url)
    soup = BeautifulSoup(res.text,'html.parser')
    item = soup.find('div') #查找获取的html中<div>标签和其的内容
    
    • 上面这样其实还没完成O(∩_∩)O,因为item还包含了标签属性这些。那么我们要用Tag的函数,因为item会是Tag对象。同样Tag对象也有find()和find_all(),用法和上面一样。不同的是还有text属性,它就是Tag对象中的内容。
    • 整个过程的完整代码:
    import requests # 调用requests库
    from bs4 import BeautifulSoup # 调用BeautifulSoup库
    res =requests.get('URL')
    # 返回一个response对象,赋值给res,URL为地址,这里以推荐书籍网站为例
    html=res.text
    # 把res解析为字符串
    soup = BeautifulSoup( html,'html.parser')
    # 把网页解析为BeautifulSoup对象
    items = soup.find_all(class_='books')   # 通过匹配属性class='books'提取出我们想要的元素
    for item in items:                      # 遍历列表items
        kind = item.find('h2')               # 在列表中的每个元素里,匹配标签<h2>提取出数据
        title = item.find(class_='title')     #  在列表中的每个元素里,匹配属性class_='title'提取出数据
        brief = item.find(class_='info')      # 在列表中的每个元素里,匹配属性class_='info'提取出数据
        print(kind.text,'\n',title.text,'\n',title['href'],'\n',brief.text) # 打印书籍的类型、名字、链接和简介的文字
    
  • 过程图示

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43701019/article/details/98961995