在python中包含转义字符的字段上使用BS4

时间:2019-03-19 01:46:03

标签: python beautifulsoup

所以我要抓取的内容的类名中带有转义字符。

这是数据的样子。

<?php if ($wp_query->max_num_pages > 1) : ?>
            <nav class="post-nav">
                <ul class="pager">
                    <li class="previous"><?php next_posts_link(esc_html__('&larr; Older posts', THEMO_TEXT_DOMAIN)); ?></li>
                    <li class="next"><?php previous_posts_link(esc_html__('Newer posts &rarr;', THEMO_TEXT_DOMAIN)); ?></li>
                </ul>
            </nav>
            <?php endif; ?>

我尝试这样做:

<div class='\"content-review\"'> blah blah blah </div>

,它返回一个空数组。我认为这有一个简单的解决方案,但我似乎无法解决。

2 个答案:

答案 0 :(得分:0)

转义字符可能不是您的问题。我相信“类”是Python中的保留字,因此您不能将其用作关键字参数。通过使用关键字参数“ class_”代替美丽的汤handles this。尝试这样的事情”:

mydivs = soup.findAll("div", class_="content-review")

如果仍然不起作用,则可以告诉Beautiful Soup忽略转义的引号,如下所示:

import re
mydivs = soup.findAll("div", class_=re.compile("content-review"))

答案 1 :(得分:0)

我在现有的转义字符旁边又添加了一个反斜杠,它对我有用。

    var query = @"insert into table1  VALUES (97,'Mondon') RETURNING Id INTO :id";
                    OracleTransaction transaction = null;
                    using (var connection = new OracleConnection(_conStr))
                    {
                        try
                        {
                            connection.Open();
                            var command = connection.CreateCommand();
                            transaction = connection.BeginTransaction();
                            command.Transaction = transaction;
                            command.CommandText = query;
                            command.CommandTimeout = 5 * 60;
    
                            command.Parameters.Add(new OracleParameter("id", OracleDbType.Int32, ParameterDirection.ReturnValue));
    
                            var result = command.ExecuteNonQuery();
                            transaction.Commit();
                            var id = Convert.ToInt32(command.Parameters["id"].Value);
                        }
                        catch (Exception ex)
                        {
                            transaction.Rollback();
                            Logger.LogError(ex);
}
}

我不太清楚为什么,但是当我尝试获取“ class”标签的内容时,它返回了什么。也许这意味着转义转义字符。