爬虫小案例
程序员文章站
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
推荐阅读
-
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
-
PHP 开发者该知道的 5 个 Composer 小技巧
-
MySQL案例02:(MyCAT报错) [ERROR][$_NIOREACTOR-3-RW] caught err: java.lang.OutOfM emo
-
检测SqlServer数据库是否能连接的小技巧
-
spa 小程序的研发随笔 (1) --- 前言
-
iOS调试Block引用对象无法被释放的小技巧分享
-
世界十大超能力的人 金皮克记忆力惊人,最后一个有点小诡异
-
Python实现的一个找零钱的小程序代码分享
-
微信小程序显示倒计时功能示例【测试可用】
-
微信小程序实现页面下拉刷新和上拉加载功能详解