- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Beautiful Soup 解析 html 代码。我通过Python中的requests模块发出get请求,然后将html代码转换为bs对象。但我遇到了一个问题。当我创建 BeautifulSoup 对象时,它以错误的方式更改了源代码。通过比较Soup对象和response.text,我可以确定这正是Beautiful Soup的错误。例如,它改变了表格标签的位置。
代码如下:
page = requests.get(address)
soup = BeautifulSoup(page.text, 'html.parser')
print(page.text)
print(soup)
输出为:
<table>
<tr>
<td>
some tags
</td>
<tr>
<td>some tags
</td>
</tr>
</table>
<table>
<tr>
<td>
some tags
</td>
</table>
<tr>
<td>some tags
</td>
</tr>
由于此更改,我无法正确解析表,因为 bs 对象中的表标记在所有 tr 标记关闭之前关闭。我应该怎么做才能解决我的问题?
这是我尝试解析的页面的完整代码:
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width; initial-scale=1; maximum-scale=1; user-scalable=0;">
<title>
три версии нас</title>
<meta name="Description" content="Онлайн библиотека Траума ePub + FB2 + Mobi. Скачать книги для электронных читалок, iOS и Android устройств и Amazon Kindle">
<meta name="Keywords" content="Traum Library, traumlib, traum, Библиотека, Библиотека Траума, онлайн, Траум, Траума, скачать, бесплатно, электронные, книги, epub, FB2, Mobi, iBooks, Kindle, online, library, Traum, books, ebooks">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<script src="/likely.js"></script>
<link rel="stylesheet" href="/likely.css">
<style type="text/css">
* {
margin: 0;
padding: 0;
}
html {
height: 100%;
font-size: 100%;
}
body {
font-size: 0.625em;
position: relative;
min-height: 100%;
margin: 0;
background-image: url(/back.png);
}
#book_header {
padding-top: 5px;
font-weight: bold;
margin-left: 10px;
margin-bottom: -5px;
color: #394263;
}
header {
border-bottom-style: solid;
border-bottom-width: 1px;
border-bottom-color: grey;
}
header {
overflow: hidden;
height: 68px;
width: 100%;
position: fixed;
left: 0px;
top: 0px;
background-color: rgb(248, 248, 248);
}
#content {
margin: 0 auto;
padding-top: 70px;
padding-bottom: 70px;
}
footer {
position: absolute;
bottom: 0px;
width: 100%;
}
.books p {
margin-top: 15px;
}
.books a {
position: absolute;
left: 70px;
}
p,
table,
td {
font: normal 1.2em sans-serif;
margin: 10px;
max-width: 768px;
}
h2 {
font: normal 1.4em sans-serif;
margin: 10px;
}
td,
tr {
padding: 4px;
}
a:link,
a:visited,
tr {
color: #394263;
text-decoration: none;
border-bottom: 1px solid;
border-color: #b2ccf0;
}
a:hover,
tr:hover {
color: #CC0000;
border-color: #f0b2b2
}
.pluso a {
border-bottom: none
}
;
tbody tr:hover {
background: RGB(235, 235, 235);
}
form {
display: inline-block;
margin-top: 10px;
}
td:first-child + td {
color: gray;
}
.speech {
border: 1px solid #DDD;
width: 300px;
padding: 0;
margin: 0
}
.speech input {
border: 0;
width: 240px;
display: inline-block;
height: 30px;
}
.speech img {
float: right;
width: 40px
}
</style>
<script>
if (document.cookie == '') {
var date = new Date(2030, 1, 1);
document.cookie = "book-format=mobi; path=/; expires=" + date.toUTCString();
}
</script>
</head>
<body OnLoad="document.search.find.focus();">
<header>
<h2><a href=/>Библиотека</a> Траума 2.33 Формат:
<select id='format-select' name='format-select'>
<option value='epub'>ePub</option><option value='fb2'>FB2</option><option selected value='mobi'>Mobi</option></select><br>
<form name=search action="/">
<input placeholder=" поиск книги / автора" type="search" results="10" name="find" name="q" id="transcript" style="width:223px;height:23px;" autofocus="autofocus" autocomplete="on" spellcheck="true" value="">
<input type="submit" value="Найти!" style="width:65px;height:23px">
</form></header><div id=content>
<section><p>Найдено в русской библиотеке Траума: 0</p>
<table></table></section><p>Найдено в английской библиотеке Траума: 0</p>
<table></table><p>Найдено в библиотеке lib.rus.ec (<b>только FB2</b>): 1<br><font size=1>Поиск идет только при отсутствии результатов в TraumLib.</font></p>
<div id='librusec' style='display:block;'><table><tr><td><div id=book_header><a href="/?find=Барнетт Лора">Барнетт Лора</a></td><td> </td><td> </td></div><tr><td><a href="/d.php?file=653860&name=Барнетт - Три версии нас.fb2"">Барнетт - Три версии нас<td>1.47MB</td></tr>
</div></table></div><footer><font size=2>
<div class="likely" data-url="http://lib.it.cx" data-title="Библиотека Траума 2.33 ePub/FB2/Mobi" style="margin:10px;">
<div class="twitter"></div>
<div class="facebook"></div>
<div class="gplus"></div>
<div class="vkontakte"></div>
<div class="telegram"></div>
<div class="odnoklassniki"></div>
<div class="linkedin"></div>
<div class="whatsapp"></div>
<div class="pinterest" data-media="i/pinnable.jpg"></div>
</div>
<pre style=\"margin:10px;\">
Найдено в БД за 0.0159 с</div>
</footer>
</body>
<script>
var sel = document.getElementById("format-select");
sel.onchange = function() {
var date = new Date( 2030,1,1 );
var format = sel.value;
document.cookie="book-format=" + format + "; path=/; expires="+date.toUTCString();
location.reload();
};
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-49300233-1', 'auto');
ga('send', 'pageview');
</script>
</html>
最佳答案
解决从“html.parser”切换到“lxml”的问题。但如果有人知道为什么 html.parser 无法正常工作,如果您分享,我将不胜感激。
关于python - Beautiful Soup 以错误的方式更改了 html 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56628915/
SO亲爱的 friend 们: 2014 年 3 月 18 日。我正在处理一种情况,在使用 ng-repeat 时,数组内的元素(我从 Json 字符串中获取)更改了原始顺序。 需要明确的是,数组中的
有很多问题询问如何在 JavaScript 单击处理程序中更改 div 的类,例如,此处:Change Div style onclick .我理解得很好(只需更改 .className),并且它有效
我从access导入了一个数据库到mysql,但其中一个表的列名“股数”带有空格,但我尝试更改、替换甚至删除列名,但失败了。任何人都可以帮助解决这一问题 String UpdateQuary = "U
我正在做一个随机的学校元素。 目前,我有一个包含两个 CSS 的页面。一种用于正常 View ,一种用于残障人士 View 。 此页面还包括两个按钮,它们将更改使用的样式表。 function c
我需要使用 javascript 更改 HTML 元素中的文本,但我不知道该怎么做。 ¿有什么帮助吗? 我把它定义成这样: Text I want to change. 我正在尝试这样做: docum
我在它自己的文件 nav_bar.shtml 中有一个主导航栏,每个其他页面都包含该导航栏。这个菜单栏是一个 jQuery 菜单栏(ApyCom 是销售这些导航栏的公司的名称)。导航栏上的元素如何确定
我正在摆弄我的代码,并开始想知道这个变化是否来自: if(array[index] == 0) 对此: if(!array[index] != 0) 可能会影响任何代码,或者它只是做同样的事情而我不需
我一直在想办法调整控制台窗口的大小。这是我正在使用的函数的代码: #include #include #define WIDTH 70 #define HEIGHT 35 HANDLE wHnd;
我有很多情况会导致相同的消息框警报。 有没有比做几个 if 语句更简单/更好的解决方案? PRODUCTS BOX1 BOX2 BOX3
我有一个包含这些元素的 XELEMENT B Bob Petier 19310227 1 我想像这样转换前缀。 B Bob Pet
我使用 MySQL 5.6 遇到了这种情况: 此查询有效并返回预期结果: select * from some_table where a = 'b' and metadata->>"$.countr
我想知道是否有人知道可以检测 R 中日期列格式的任何中断的包或函数,即检测日期向量格式更改的位置,例如: 11/2/90 12/2/90 . . . 15/Feb/1990 16/Feb/1990 .
我希望能够在小部件显示后更改 GtkButton 的标签 char *ButtonStance == "Connect"; GtkWidget *EntryButton = gtk_button_ne
我正在使用 Altera DE2 FPGA 开发板并尝试使用 SD 卡端口和音频线路输出。我正在使用 VHDL 和 C 进行编程,但由于缺乏经验/知识,我在 C 部分遇到了困难。 目前,我可以从 SD
注意到这个链接后: http://www.newscientist.com/blogs/nstv/2010/12/best-videos-of-2010-progress-bar-illusion.h
我想知道在某些情况下,即使剧本任务已成功执行并且 ok=2,ansible 也会显示“changed=0”。使用 Rest API 和 uri 模块时会发生这种情况。我试图找到解释但没有成功。谁能告诉
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: add buttons to push notification alert 是否可以在远程通知显示的警报框中指定有
当您的 TabBarController 中有超过 5 个 View Controller 时,系统会自动为您设置一个“更多” View 。是否可以更改此 View 中导航栏的颜色以匹配我正在使用的颜
如何更改.AndroidStudioBeta文件夹的位置,默认情况下,该文件夹位于Windows中的\ .. \ User \ .AndroidStudioBeta,而不会破坏任何内容? /编辑: 找
我目前正在尝试将更具功能性的编程风格应用于涉及低级(基于 LWJGL)GUI 开发的项目。显然,在这种情况下,需要携带很多状态,这在当前版本中是可变的。我的目标是最终拥有一个完全不可变的状态,以避免状
我是一名优秀的程序员,十分优秀!