逆向爬虫03 bs4模块

python bs4模块

bs4模块是一个可以像CSS选择器一样,对html代码进行查找,在介绍bs4模块之前,需要先对html语言进行简单介绍。
<!-- 
html代码由标签,属性,和文本构成
其中标签决定了被展示的文本内容的性质,如:
<h1>标题</h1> h标签:表示这部分文本是标题
<p>段落</p>   p标签:表示这部分文本是段落
<a href="www.baidu.com">百度主页</a> a标签:表示这部分是一个超链接,访问的是百度首页

属性为标签增加了额外内容,比如上面a标签中的href就是a标签的属性,使该a标签可访问到百度首页
<h1 color="pink">我爱周杰伦</h1> color属性可以指定文本的颜色
<p id="1">大力滴滴滴</p> 可以自定义id来标识唯一的标签,方便css或bs4模块来查找

文本为实际展示的内容
-->
<标签 属性="" 属性="">
	文本
</标签>
<a></a>
<!-- 由于这里不是开发前端,只了解这些html代码的知识就够用了 -->
bs4模块可以针对html代码中的标签,属性,文本进行查找,而不需要编写正则表达式,相比于re模块方便许多。

bs4模块主要使用里面的Beautifulsoup类中的find()和find_all()方法,下面对这两个方法进行一一介绍

"""
	find()方法用于查找单个标签
"""
from bs4 import BeautifulSoup

html = """
<ul>
    <li><a href="zhangwuji.com">张⽆忌</a></li>
    <li id="abc"><a href="zhouxingchi.com">周星驰</a></li>
    <li><a href="zhubajie.com">猪⼋戒</a></li>
    <li><a href="wuzetian.com">武则天</a></li>
</ul>
"""

page = BeautifulSoup(html, "html.parser")
li = page.find("li", attrs={"id": "abc"})	# 查找指定属性的标签用find("标签", attr={"属性": "值"})
print(li)	# <li id="abc"><a href="zhouxingchi.com">周星驰</a></li>
a = li.find("a")		# 查找标签用find("标签")
# 查找文本用.text
print(a.text)			# 周星驰
# 查找属性用.get("属性名")
print(a.get("href"))	# zhouxingchi.com
"""
	find_all()方法用于查找满足要求的所有标签
"""
from bs4 import BeautifulSoup

html = """
<ul>
    <li><a href="zhangwuji.com">张⽆忌</a></li>
    <li id="abc"><a href="zhouxingchi.com">周星驰</a></li>
    <li><a href="zhubajie.com">猪⼋戒</a></li>
    <li><a href="wuzetian.com">武则天</a></li>
    <a href="jinmaoshiwang.com">金毛狮王</a>
</ul>
"""

page = BeautifulSoup(html, "html.parser")
li_list = page.find_all("li")	# 将查找到满足要求的标签存放到迭代器中
for li in li_list:
    a = li.find("a")
    text = a.text
    href = a.get("href")
    print(text, href)	# 张⽆忌 zhangwuji.com  周星驰 zhouxingchi.com  猪⼋戒 zhubajie.com  武则天 wuzetian.com
使用方法总结:
  1. 初始化BeautifulSoup类,输入html文本和选择"html.parser"解析器
  2. 查找标签使用 find() 或 find_all() 方法
  3. 找到标签后,要获得属性使用 .get(“属性名”) 方法
  4. 要获得文本,访问被查找到标签的 .text 属性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Selenium是一个自动化测试的工具,可以启动一个全新的浏览器,并从浏览器中提取到你想要的内容。为什么要学习Selenium呢?因为很多网站现在将数据进行加密,再通过JavaScript将数据解密,而Requests模块只能获取到加密后的数据,无法爬取这类网站的数据。而Selenium模块提供了浏览器环境,浏览器会加载JavaScript代码对数据进行解密,因此Selenium可以应对大多数数据加密的情况。 安装Selenium很简单,首先输入命令pip install selenium进行安装,然后下载浏览器驱动,可以在https://npm.taobao.org/mirrors/chromedriver到并下载适合自己浏览器版本的驱动。下载完后将驱动放到Python解释器目录即可。 逆向爬虫是指使用Selenium来对网站进行爬取。通过Selenium可以模拟浏览器的行为,使得爬虫更加难以被检测到。逆向爬虫可以应对一些反爬虫的策略,例如验证码等。如果你想要使用Selenium进行逆向爬虫,可以按照以下步骤进行操作: 1. 打开浏览器,输入网址并回车,可以使用Selenium的webdriver模块来实现。 2. 使用Selenium的各种操作方法来提取你想要的内容,例如查元素、点击按钮等。 3. 如果需要获取iframe中的内容,可以使用Selenium的switch_to.frame方法切换到对应的iframe,并提取内容。 4. 如果需要操作下拉列表,可以使用Selenium的select模块来选择选项,并获取页面代码。 5. 如果想要隐藏浏览器窗口,可以使用Selenium的options模块来设置无头模式。 对于验证码的处理,你可以使用超级鹰等第三方工具来解决,这些工具可以自动破解验证码。 请注意,这些步骤只是逆向爬虫的基础方法,具体的操作可能因网站而异,你可能需要根据具体情况进行调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [逆向爬虫11 selenium基础](https://blog.csdn.net/weixin_40743639/article/details/122631986)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值