四、网页信息存储和 BeautifulSoup之find用法

四、网页信息存储和 BeautifulSoup之find用法网页信息存储和BeautifulSoup之find用法前言一、BeautifulSoup之find用法findfind_all具体使用示例二、网页信息存储1.基础知识2.写入数据总结前言上一章更新时时间太过匆忙,在这一章会解决上一章结尾问题BeautifulSoup之find用法,并进入爬虫的第三个流程,信息存储。一、BeautifulSoup之find用法BeautifulSoup有find和find_all的方法。但在使用之前一定要先建立一个beautifulsoup对象。find只

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺


前言

在这一章会解决上一章结尾问题BeautifulSoup之find用法,并进入爬虫的第三个流程,信息存储。


一、BeautifulSoup之find用法

BeautifulSoup有find 和find_all的方法。但在使用之前一定要先建立一个beautifulsoup对象。

find

只返回第一个匹配到的对象
语法:

find(name, attrs, recursive, text, **wargs) 

name–查找标签
text–查找文本
attrs–基于attrs参数

find_all

返回所有匹配到的结果,区别于find(find只返回查找到的第一个结果)
语法:

find_all(name, attrs, recursive, text, limit, **kwargs)

limit–限制
可以根据limit选择爬取的次数

find_all('span',limit=2)#获取span元素 但是只爬取两次

具体使用示例

soup.find_all("title")#找到所有title
soup.find_all("p", "title")#找到所有<p>内的title
soup.find_all("a")
soup.find_all("span")
soup.find_all(id="content")#找到id为content的
soup.find_all(id=True)    # 无论id是什么都可以

也可以通过css样式进行搜索,就像上一章讲到的提取简介。

find('span',class_="absolute")

二、网页信息存储

1.基础知识

在学习存储网页信息之前需要读者先学习python文件操作,如果没学过也没关系, 在这里我会讲解一些基础操作。已经学习过的读者可以跳过

打开文件

f = open("test.txt",'r')#两个参数 一个为文件名(带后缀)一个为模式

#r 为只读 以只读模式打开test 如果test.txt不存在则报错

f.read(n) #一次读n个字符 如果没有传入n则读所有数据
f.readlines(n) #一次读一行如果没有传入n则一行一行把文件读完
访问模式 说明
r Read 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w Write打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在创建新文件。
a Add打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb Read bin以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb Write bin以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab Add bin以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+ Read+Write打开一个文件用于读写。文件指针将会放在文件的开头。
w+ Write + Read打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+ Add+打开一个文件用于读写,如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果改文件不存在,创建新文件用于读写。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头
wb+ 以二进制格式打开一个文件用于读写。如果改文件已存在则会覆盖。如果改文件不存在,创建新文件。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果改文件不存在,创建新文件用于读写。

文件相关操作

import os#文件相关操作os模块
import os
#重命名文件
os.rename("A","B") #重命名 把文件A名字改为B

#删除文件
os.remove("A") #把名字为A的文件删除

#创建文件夹
os.mkdir("name")#创建一个名字为name的文件夹

#获取当前目录
os.getcwd()

#改变默认目录
os.chdir("path")#把默认路径改为path 如../

2.写入数据

这里还以第三章代码为例但是这次不仅打印结果而且存储结果

import requests #导入requests包
from bs4 import BeautifulSoup

url="https://www.bilibili.com/bangumi/play/ss22088/?from=search&seid=503303968644820581"#把bilibil的网址复制过来
req=requests.get(url)
req.encoding='utf-8'
soup=BeautifulSoup(req.text,'lxml')#使用BeautifulSoup的lxml解析网页
description=soup.find('span',class_="absolute").text.strip()
print(description)

t=open('spider_note.txt','w')#打开文件名为spider_note.txt的文件
#因为是以可写方式打开的,如果文件不存在则创建一个,不报错。

t.write(description)#写入
t.close()#关闭

这样大家就可以看见与这个文件同一目录下多了一个名为spider_note.txt的文件 在运行后打开代码可以看见简介已经被写入


感谢

如有不周还望指正。
部分资料来源于书籍或者网络 在此表达由衷的感谢

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184405.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jsonschema校验json数据_接口校验不通过

    jsonschema校验json数据_接口校验不通过何为Json-SchemaJson-schema是描述你的JSON数据格式;JSON模式(应用程序/模式+JSON)有多种用途,其中之一就是实例验证。验证过程可以是交互式或非交互式的。例如,应用程序可以使用JSON模式来构建用户界面使互动的内容生成除了用户输入检查或验证各种来源获取的数据。(来自百度百科)相关jar包<dependency><groupId>com.github.fge</groupId><artifactId&g

    2025年10月1日
    4
  • QT 播放器之界面布局[通俗易懂]

    QT 播放器之界面布局[通俗易懂]第一步。。。当然是创建项目啦然后修改项目的名称,接着找一个自己喜欢的文件夹藏着。记得路径不能有中文,当然项目名称也不能有中文之后一直下一步直到完成,来到该界面后双击ui文件去布局右键把菜单栏,工具栏,状态栏去除先把控件摆好,之后再修改名字设置按钮的最大尺寸设置centralWidget布局成右边这样最后修改控件的对象名称…

    2022年6月13日
    44
  • 【Unity3D入门教程】Unity3D之GUI浅析「建议收藏」

    【Unity3D入门教程】Unity3D之GUI浅析「建议收藏」一款典型的软件都会有交互界面,这些界面包括标签、按钮、拖动条等。Unity3D内置一些基本的GUI命令,可以在屏幕上绘制简单的交互控件。本文主要介绍传统的GUI。而最新加入的UGUI模块将在下一讲中介绍。

    2022年8月10日
    14
  • 《LaTeX教程》

    《LaTeX教程》一位小仙女分享给我的LaTeX排版教程书,本人感觉特别好用。人生最快乐的事就是分享你的快乐给别人。独乐不如众乐,愿你我都有所获。链接:https://pan.baidu.com/s/1IkRzLz-Vmt5uL5TksX1lxg提取码:v9ag(“Ifyouhavegreattalents,industrywillimprovethem;ifyouhavebutm…

    2022年7月16日
    13
  • buck降压电路解析

    buck降压电路解析1.拓扑模型如下2.需要的元器件如下:元器件:开关管T、续流二极管D、储能电感L、滤波电容C、负载电阻R输入电压:Ui输出电压:Uo特性:Ui>Uo3.三种工作模式BCM、CCM、DCM3.1CCM–电感电流连续导通模式3.2当Imin减小到零时,电路由CCM模式进入BCM—电感电流临界导通模式3.3DCM—电感电流非连续/断续导通模式4.举例子LM2576/2596下图中的R1/R2阻值一般是k级别电阻,100k左右,目的是减少功耗5.常见的厂商TI、MP

    2022年6月20日
    67
  • Win10图标变白纸了,恢复方法

    Win10电脑桌面图标变成白纸了,恢复步骤第一种方法(此方法失败用第二种)首先开启显示隐藏受保护的系统文件和文件夹的设置。打开计算机,单击【文件】菜单中的【更改文件夹和搜索选项】选项。切换到【查看】选项卡,在【高级设置】选择【显示隐藏的文件、文件夹和驱动器】,然后单击【确定】按钮保存设置,之后关闭。键盘按WIN+R组合键,弹出窗体里键入【%USERPROFILE%\AppData\Local】回车键确定打开的文件夹窗口删除隐藏状态的IconCache.db图标缓存文件,搞定。第二种方法

    2022年4月5日
    3.8K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号