欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

爬虫小案例

程序员文章站 2023-09-17 23:18:50
爬取“http://bjjqe.com”网站的内容,解析数据,输出该网站中的图书信息爬取网站内容,查看到图书信息都是子啊’div’的标签中,并包含“class=“bk_show_info”属性,因此调用BeautifulSoup对象的find_all()方法进行查找时,可用语句”bsObj.find_all("div",{'class':'bk_show_info'})“实现,然后再通过遍历查找找到的内容列表,取出有用的信息进行输出。from bs4 import BeautifulSoup #...

爬取“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