首页 > 编程语言 > 详细

python-基于bs4的聚焦爬虫学习

时间:2020-11-10 23:07:49      阅读:28      评论:0      收藏:0      [点我收藏+]

    学习了基于bs4聚焦爬虫:bs4比较局限只能是python使用。个人感觉不是很好使用。

   bs4数据解析原理:1、实例化一个beautifulSoup对象,并且将页面源码加载到该对象中
           2、通过beautifulSoup对象中的相关属性或者方法进行标签定位和数据提取

  下面是我的测试代码和BeautifulSoup对象的一些常用方法。

    

if __name__ == __main__:
    fp = open(./guge.html, r, encoding=utf-8)
    soup = BeautifulSoup(fp, lxml)
    # 第一次所出现的标签 soup.tagname  soup.a相当于soup.find(a)
    # print(soup.a)
    # soup.find(a, class_=song)的属性定位

    # soup.findAll()返回值是一个列表,里面的内容是所有要查找的所有标签
    # print(soup.findAll(a))

    # soup.select(某种选择器id,class等) 选择器 返回值是一个列表
    # soup.select也可以用于层级定位 >表示一个层级 空格表示多个层级
    # print(soup.select(ul > li > a))
    # print(soup.select(ul a))

    # 获取标签内容.text/get_text() 获取一个标签下的所有内容,string 该标签下的内容
    # print(soup.find(ul).string)

    # 标签中的属性值
    # print(soup.a[href])

 

 

  这是我做的一个基于bs4爬取三国演义小说:

  

# 爬取三国演义所有的标题和章节内容
import requests
from bs4 import BeautifulSoup
if __name__ == __main__:
    url = https://www.shicimingju.com/book/sanguoyanyi.html
    headers = {
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0
    }
    resp = requests.get(url=url,headers=headers)
    resp.encoding = utf-8
    nameobj = resp.text
    soup = BeautifulSoup(nameobj,lxml)
    # print(soup.select(.book-mulu a))
    # 选出来的所有a标签列表
    zhang_lable = soup.select(.book-mulu a)
    # print(zhang_lable)

    fp = open(D:\StudyPython\scrapy\sanguo.html,w,encoding=utf-8)
    for i in zhang_lable:
        # 获取章节名
        name = i.text
        # 获取章节内容地址
        url_href = https://www.shicimingju.com+i[href]
        resp1 = requests.get(url=url_href,headers=headers)
        resp1.encoding = utf-8
        text = resp1.text
        soup_neirong = BeautifulSoup(text,lxml)
        # print(soup_neirong.find(div,class_=chapter_content).get_text())
        neirong = soup_neirong.find(div,class_=chapter_content).get_text()
        fp.write(name+:+neirong+\n)
        print(name+爬取成功!)
    fp.close()
    print(三国演义爬取完成)

 

 


  

python-基于bs4的聚焦爬虫学习

原文:https://www.cnblogs.com/moxihuishou/p/13954593.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!