相关疑难解决方法(0)

如何在BeautifulSoup.BeautifulStoneSoup中维护区分大小写的标签?

我正在编写一个用于编辑XML文件的脚本BeautifulStoneSoup,但该库会将所有标记转换为小写.是否可以选择保存案例?

import BeautifulSoup    
xml = "<TestTag>a string</TestTag>"    
soup = BeautifulSoup.BeautifulStoneSoup(xml, markupMassage=False)    
print soup.prettify() # or soup.renderContents()
#prints
>>> <testtag>a string</testtag> 
#instead of the expected
>>> <TestTag>a string</TestTag>
Run Code Online (Sandbox Code Playgroud)

python xml beautifulsoup

12
推荐指数
1
解决办法
3172
查看次数

lxml是否可能以不区分大小写的方式工作?

我正在尝试从任意网站中删除META关键字和描述标签.我绝对无法控制所说的网站,所以必须采取我给的.它们有标签和属性的各种外壳,这意味着我需要不区分大小写.我无法相信lxml作者在排除对其库的大部分使用时坚持完全强制标准兼容性是顽固的.

我想能够说doc.cssselect('meta[name=description]')(或者一些XPath等价物),但是这不会<meta name="Description" Content="...">因为资本D 而捕获标签.

我目前正在使用它作为一种解决方法,但它太可怕了!

for meta in doc.cssselect('meta'):
    name = meta.get('name')
    content = meta.get('content')

    if name and content:
        if name.lower() == 'keywords':
            keywords = content
        if name.lower() == 'description':
            description = content
Run Code Online (Sandbox Code Playgroud)

似乎标签名称meta不区分大小写,但属性不是.如果meta区分大小则会更加烦人!

python lxml case-sensitive case-insensitive css-selectors

8
推荐指数
1
解决办法
3566
查看次数