python3 爬虫相关学习9:BeautifulSoup 官方文档学习

这篇具有很好参考价值的文章主要介绍了python3 爬虫相关学习9:BeautifulSoup 官方文档学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1 BeautifulSoup 官方文档

2 用bs 和 requests 打开 本地html的区别:代码里的一段html内容

2.1 代码和运行结果

2.2 用beautiful 打开 本地 html 文件

2.2.1 本地html文件

2.2.2 soup1=BeautifulSoup(html1,"lxml")

2.3 用requests打开 本地 html 文件

2.3.1 本地html文件

2.3.2 print(html1)

3 用bs 和 requests 打开 本地html的区别:一个独立的html文件

3.1 独立创建一个html文件

3.2 下面是新得代码和运行结果

3.3 用beautiful 打开 本地 html 文件

3.3.1 语法差别  soup1=BeautifulSoup(open(path1))

3.4 用 read() 打开 本地 html 文件

3.4.1 语法差别 with open(path1 ,"r") as f:   和  res=f.read()

3.5 用requests打开 本地 html 文件

4  f.write(soup1.prettify()) 和 html 用 read()读出来 差别很大


1 BeautifulSoup 官方文档

Beautiful Soup: We called him Tortoise because he taught us.https://www.crummy.com/software/BeautifulSoup/

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

Beautiful Soup 4.4.0 文档 — Beautiful Soup 4.2.0 中文 文档https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/

Beautiful Soup 4.4.0 文档 — beautifulsoup 4.4.0q 文档https://beautifulsoup.readthedocs.io/zh_CN/latest/

python3 爬虫相关学习9:BeautifulSoup 官方文档学习


 

2 用bs 和 requests 打开 本地html的区别:代码里的一段html内容

2.1 代码和运行结果

#E:\work\FangCloudV2\personal_space\2learn\python3\py0003.txt

import requests
from bs4 import BeautifulSoup

#html文件内容
html1 = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>

<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>

<p class="story">...</p>
"""

#"测试bs4"
print ("测试bs4")
soup1=BeautifulSoup(html1,"lxml")
print (soup1.prettify())

#"对比测试requests"
print ("对比测试requests")
#res=requests.get(html1)
res=html1
#print (res.text)
print (res)

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

 python3 爬虫相关学习9:BeautifulSoup 官方文档学习

2.2 用beautiful 打开 本地 html 文件

#"测试bs4"

html1="""  ... """
print ("测试bs4")
soup1=BeautifulSoup(html1,"lxml")
print (soup1.prettify())

2.2.1 本地html文件

  • 这次的本地html 文件是写在 python 脚本内容一起的 一段文本
  • html1=""" ...  """

2.2.2 soup1=BeautifulSoup(html1,"lxml")

  • 正确写法
  • soup1=BeautifulSoup(html1,"lxml")
  • lxml 是解析方式
  • 如果不写,默认也会采用 lxml的解析
  • 如果写成 soup1=BeautifulSoup(html1) 可以正常运行,但是会提醒

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

lxml

html.parser

应该这几种都可以

2.3 用requests打开 本地 html 文件

#"对比测试requests"
print ("对比测试requests")
#res=requests.get(html1)
res=html1
#print (res.text)
print (res)

2.3.1 本地html文件

  • 这次的本地html 文件是写在 python 脚本内容一起的 一段文本
  • html1=""" ...  """
  • 本地文件 html 已经是一段 脚本内的文本  """  ..."""

2.3.2 print(html1)

本地文件 html 已经是一段 脚本内的文本  """  ..."""

  • 正确写法1 
  • res=html1
  • print (res)
  • 正确写法2
  • print (html1)
  • 错误写法1
  • #print (res.text)
  • #print (html1.text)
  • 只有html作为网页结构的时候,可以用  html.text 取到其中的string  内容
  • 所以 
  • requests.get(url) 
  • requests.get(url).text

requests.exceptions.InvalidSchema: No connection adapters were found for '<html><head><title>The Dormouse\'s story</title></head>\n<body>\n<p class="title"><b>The Dormouse\'s story</b></p>\n\n<p class="story">Once upon a time there were three little sisters; and their names were\n<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,\n<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and\n<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;\nand they lived at the bottom of a well.</p>\n\n<p class="story">...</p>\n'

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

  • 错误写法2
  • #res=requests.get(html1)
  • 一样的原因
  • 因为这里的html1 不是网页,而已经是网页的内容string了!

AttributeError: 'str' object has no attribute 'text'

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

3 用bs 和 requests 打开 本地html的区别:一个独立的html文件

3.1 独立创建一个html文件

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

3.2 下面是新得代码和运行结果

代码

#E:\work\FangCloudV2\personal_space\2learn\python3\py0003-1.txt
#E:\work\FangCloudV2\personal_space\2learn\python3\html0003.html


import requests
import os
import time
from bs4 import BeautifulSoup


path1=r"E:\work\FangCloudV2\personal_space\2learn\python3\html0003.html"
soup1=BeautifulSoup(open(path1))
print ("测试bs4")
print (soup1.prettify())

path2=r'E:\work\FangCloudV2\personal_space\2learn\python3\html0003-1.html'
if not os.path.exists(path2):              
    os.mkdir(path2) 

with open(path2 ,"a") as f:
    f.write("测试bs4")
    f.write(soup1.prettify())


print ("对比测试requests")
with open(path1 ,"r") as f:
    res=f.read()
print (res)

with open(path2 ,"a") as f:
    f.write("对比测试requests")
    f.write(res)



"""
#地址,路径,前都记得加 r, 因为string 内部包含\/等转义符,rawdata安全
url1="E:\work\FangCloudV2\personal_space\2learn\python3\html0003.html"
url1=r"E:\work\FangCloudV2\personal_space\2learn\python3\html0003.html"
res=requests.get(url1)
#本地地址不能像网址 url这样用,用的\/不同,即使用 raw r 也不行. 可以用转格式函数吗?
#https://www.baidu.com/
"""

运行结果

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

另存为的文件内容

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

3.3 用beautiful 打开 本地 html 文件

3.3.1 语法差别  soup1=BeautifulSoup(open(path1))

最大的差别

  • soup1=BeautifulSoup(open(path1))
  • soup1.prettify() 输出格式化得内容

path1=r"E:\work\FangCloudV2\personal_space\2learn\python3\html0003.html"
soup1=BeautifulSoup(open(path1))
print ("测试bs4")
print (soup1.prettify())

path2=r'E:\work\FangCloudV2\personal_space\2learn\python3\html0003-1.html'
if not os.path.exists(path2):              
    os.mkdir(path2) 

with open(path2 ,"a") as f:
    f.write("测试bs4")
    f.write(soup1.prettify())

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

3.4 用 read() 打开 本地 html 文件

3.4.1 语法差别 with open(path1 ,"r") as f:   和  res=f.read()

  • 和  read()读出来的内容 (应该和 requests.get()得出来得内容一样)

print ("对比测试requests")
with open(path1 ,"r") as f:
    res=f.read()
print (res)

with open(path2 ,"a") as f:
    f.write("对比测试requests")
    f.write(res)
 

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

3.5 用requests打开 本地 html 文件

  • 没试过
  • 这种本体html没法试把?

4  f.write(soup1.prettify()) 和 html 用 read()读出来 差别很大

和  read()读出来的内容 (应该和 requests.get()得出来得内容一样)

soup1.prettify()

5 其他

soup1.text ? 全部文本内容?

soup1.a

soup1.find()

soup1.find_all()

soup1.文章来源地址https://www.toymoban.com/news/detail-480932.html

到了这里,关于python3 爬虫相关学习9:BeautifulSoup 官方文档学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python3 爬虫相关学习8:python 的常见报错内容汇总(持续收集ing)

    目录 1 低级错误(比如拼写错误等)  1.1 NameError:  1.2 属性错误 AttributeError:  属性拼写错误 2  应用错误(类型应用,属性使用的错误) 2.1 类型错误 TypeError:  如字符串连接错误 2.2  属性应用错误  AttributeError 3 模块相关错误 3.1 找不到对应模块 ModuleNotFoundError: 3.2 相关模

    2024年02月04日
    浏览(41)
  • python3 爬虫相关学习3:response= requests.get(url)的各种属性

    目录 1  requests.get(url) 的各种属性,也就是response的各种属性 2 下面进行测试 2.1 response.text 1.2  response.content.decode() 1.2.1 response.content.decode() 或者  response.content.decode(\\\"utf-8\\\") 1.2.2   response.content.decode(\\\"GBK\\\") 报错 1.2.3 关于编码知识 1.3 response.url  1.4 response.status_code 插入知识:

    2024年02月03日
    浏览(37)
  • Python爬虫学习笔记(六)————BeautifulSoup(bs4)解析

    目录 1.bs4基本简介 (1)BeautifulSoup简称 (2)什么是BeatifulSoup? (3)优缺点 2.bs4安装以及创建 (1)安装          (2)导入          (3)创建对象 3.节点定位 (1)根据标签名查找节点 (2)函数         ①find(返回一个对象)         ②find_all(返回一个列表

    2024年02月17日
    浏览(51)
  • python爬虫request和BeautifulSoup使用

    1.安装request 2.引入库 3.编写代码 发送请求 我们通过以下代码可以打开豆瓣top250的网站 但因为该网站加入了反爬机制,所以我们需要在我们的请求报文的头部加入User-Agent的信息 User-Agent可以通过访问网站时按f12查看获取 我们可以通过response的ok属性判断是否请求成功 此时如果

    2024年02月08日
    浏览(48)
  • Python爬虫实现(requests、BeautifulSoup和selenium)

    Python requests 是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。 下载requests库 pip install requests 实例: 属性和方法 属性或方法 说明 content 返回响应的内容,以字节为单位 headers 返回响应头,字典格式 json() 返回结果的 JSON 对象 request 返回请求此响应

    2024年02月07日
    浏览(47)
  • Python 爬虫:如何用 BeautifulSoup 爬取网页数据

    在网络时代,数据是最宝贵的资源之一。而爬虫技术就是一种获取数据的重要手段。Python 作为一门高效、易学、易用的编程语言,自然成为了爬虫技术的首选语言之一。而 BeautifulSoup 则是 Python 中最常用的爬虫库之一,它能够帮助我们快速、简单地解析 HTML 和 XML 文档,从而

    2024年02月04日
    浏览(58)
  • python爬虫基础入门——利用requests和BeautifulSoup

    (本文是自己学习爬虫的一点笔记和感悟) 经过python的初步学习,对字符串、列表、字典、元祖、条件语句、循环语句……等概念应该已经有了整体印象,终于可以着手做一些小练习来巩固知识点,写爬虫练习再适合不过。 爬虫的本质就是从网页中获取所需的信息,对网页

    2024年02月15日
    浏览(55)
  • python晋江文学城数据分析(一)——爬虫(BeautifulSoup正则)

    学爬虫,拿平常看小说的绿色网站下手。 爬取的数据主要分为两部分,收藏榜的小说信息和小说详情页的部分数据。         通过点击榜单上侧选项(其实也可以用拼音猜一猜),观察url变化,寻找规律。如fw指代范围,fbsj指代发表时间,ycx指代原创性,以此类推。可以

    2024年02月08日
    浏览(42)
  • python spider 爬虫 之 解析 xpath 、jsonpath、BeautifulSoup (三)

    简称:bs4 BeautifulSoup跟lxml 一样,是一个html文档的解析器,主要功能也是解析和提取数据 优缺点 缺点:效率没有lxml的效率高 优点:接口接口人性化,使用方便 延用了css选择器 安装BeautifulSoup 1、安装:pip install bs4 2、导入:from bs4 import BeautifulSoup 3、创建bs4 对象 ① 服务器响

    2024年02月11日
    浏览(58)
  • 一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium

    大家好,我是python222小锋老师。前段时间卷了一套  Python3零基础7天入门实战  以及1小时掌握Python操作Mysql数据库之pymysql模块技术 近日锋哥又卷了一波课程,python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium,文字版+视频版。1天掌握。 视频版教程:一天掌握python爬虫【

    2024年02月07日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包