Beautiful Soup实战(一)

目的:把40道题从网页中整理出来

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
	<div class="TiMu" style="position:relative">
		<div class="Zy_TItle clearfix">
			<i class="fl">print(title.i.string)1</i>
						<div class="clearfix" style="line-height: 35px; font-size: 14px;padding-right:15px;width:516px;">
                            <div style="width:80%;height:100%;float:left;">
                                    【单选题】<p>下列不属于水平分隔线<hr>标记的属性是( )。</p>
                            </div>
                            <div style="width:20%;height:100%;float:right;">

                            </div>
						</div>
			</div>
		<form action="http://fanyapbl.fy.chaoxing.com/questionError/addQuestion" method="post" id="questionErrorForm1"
					target="_blank">

					<ul class="Zy_ulTop">
						<li class="clearfix"><i class="fl">A、</i><a href="javascript:void(0)" class="fl" style="word-break: break-all;text-decoration: none;">
						<p>width</p>
					</a></li>
					<li class="clearfix"><i class="fl">B、</i><a href="javascript:void(0)" class="fl" style="word-break: break-all;text-decoration: none;">
						<p>height</p>
					</a></li>
					<li class="clearfix"><i class="fl">C、</i><a href="javascript:void(0)" class="fl" style="word-break: break-all;text-decoration: none;">
						<p>size</p>
					</a></li>
					<li class="clearfix"><i class="fl">D、</i><a href="javascript:void(0)" class="fl" style="word-break: break-all;text-decoration: none;">
						<p>color</p>
					</a></li>
					</ul>
					<div class="Py_answer clearfix">
							<span>正确答案: B </span>
							<span>我的答案:B</span>
                    </div>
            </form>
        <i class="fr dui"></i>
		<span style="font-size:14px;top:25px;float:right;">得分:
		<span style="color:#db2727;">2.5分</span></span>
    </div>
</body>
</html>
<div class="TiMu">
	<div class="Zy_TItle clearfix"></div>
	<from></from>
	<span></span>
</div>


分析页面:

  1. 页面结构杂,每一题的结构相似
  2. 遍历所有的class="TiMu",得到40个*class="TiMu"
  3.  
div.TiMu>div.Zy_TItle+from+span

<div class="TiMu">
	<div class="Zy_TItle"></div>
	<from></from>
	<span></span>
</div>

 

代码:

from bs4 import BeautifulSoup
import re

#格式化html

#打开文件
op = open('test.html',mode='rb')
#转化成bs对象
soup1 = BeautifulSoup(op,"html5lib")
[s.extract() for s in soup1('script')]
[s.extract() for s in soup1('style')]
for child in soup1.find_all('div',class_='TiMu',limit=1):
    a = re.compile(r'\n|&nbsp|\xa0|\\xa0|\u3000|\\u3000|\\u0020|\u0020|\t|\r')
    clean_soup = a.sub('', str(soup1))
    soup2 = BeautifulSoup(clean_soup,"html5lib")
    soupstr = soup2.text
print(soupstr)


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值