爬虫小案例

爬取“http://bjjqe.com”网站的内容,解析数据,输出该网站中的图书信息

爬取网站内容,查看到图书信息都是子啊’div’的标签中,并包含“class=“bk_show_info”属性,因此调用BeautifulSoup对象的find_all()方法进行查找时,可用语句”bsObj.find_all("div",{'class':'bk_show_info'})“实现,然后再通过遍历查找找到的内容列表,取出有用的信息进行输出。


from bs4 import BeautifulSoup  # BeautifulSoup
import requests  # 导入requests 


# 定义一个getHtml()函数,根据填写的url参数获取数据
def getHtml(url):
    # 异常处理
    try:
        r = requests.get(url)  # 使用get函数打开指定的url
        r.raise_for_status()  # 如果状态不是200,则引发异常
        r.encoding = 'utf-8'  # 更改编码方式
        return r.text  # 返回页面内容
    except:
        return ""  # 发生异常返回空字符串


# 定义数据解析函数,用于招到符合条件的数据并输出
def getcon(html):
    bsObj = BeautifulSoup(html)  # 将html对象转化为BeautifulSoup对象
    # 找到所有class为bk_show_info的div,只获取图书信息
    divList = bsObj.find_all("div", {'class': 'bk_show_info'})
    allbook = []  # 存储全部数据,二维列表
    for divs in divList:
        book_info = []  # 存储单本图书信息,一维列表
        book_name = divs.h4['data-name']  # 获取图书名称
        book_info.append(book_name)  # 将图书名称存储到
        p_list = divs.find_all('p')  # 查找单本图书的其他信息(再p标签中)
        for p_content in p_list:
            book_info.append(p_content.string)  # 将单本图书的信息存入allbook
        allbook.append(book_info)
    # 输出获取到的图书信息
    for book in allbook:
        print(book)


html = getHtml("http://bjjqe.com")  # 调用获取页面内容函数
getcon(html)  # 调用解析数据函数


在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值