当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 爬虫小案例

爬虫小案例

2020年07月16日  | 移动技术网IT编程  | 我要评论

爬取“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)  # 调用解析数据函数


在这里插入图片描述

本文地址:https://blog.csdn.net/qq_44364832/article/details/107351803

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网