在python中捕获特定标记之间的数据

2024-09-27 00:23:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在获取python中的url内容。。。我要捕获<h1></h1>之间的所有内容。在

我尝试的是:

myString='''<h1>kgkgjgjgkjgkjgkj</h1>
<h1>kdfgggggggggggggggggggkgjgjgkjgkjgkj</h1>
dsfgdfgg
<h1>kgkgjgjgkdfgdfgdgdfjgkjgkj</h1>
dfgdffdgf
<h1>kgkgjgjsdssssssssssssssssssssgkjgkjgkj</h1>
dfgdfgdg
<h1>kgkgjgjgkjgkjgkgggggggggggggggggggj</h1>
'''
if '<h1>' in myString:
    startString='<h1>'
    endString='</h1>'
    print myString[myString.find(startString)+len(startString):myString.find(endString)]

我有多个h1标记。但它捕获第一个h1标记之间的数据。在

如何捕获所有h1标记之间的数据?在


Tags: 数据标记url内容findh1mystringendstring
3条回答

您可以使用一个简单的regular expression

import re
print re.findall(r'<h1>(.*?)</h1>', myString)

另一种方法是使用Beautiful Soup作为HTML解析器(如果您想解析真实的HTML页面,这是更可取的方法):

^{2}$

BeautifulSoup未包含在标准库中,因此需要手动安装。您可以通过pip轻松安装:

pip install beautifulsoup4

我会追求美丽的人生--我的尝试

from bs4 import BeautifulSoup
import requests

url = 'http://accessibility.psu.edu/headingshtml/'

respons = requests.get(url).content

soup = BeautifulSoup(respons,'lxml')

h1tags = soup.find_all('h1')

for singleTag in h1tags:
    print singleTag.text

打印(在本例中只有一个h1标记)

^{2}$

使用BeautifulSoup解析器。在

>>> from bs4 import BeautifulSoup
>>> myString='''<h1>kgkgjgjgkjgkjgkj</h1>
<h1>kdfgggggggggggggggggggkgjgjgkjgkjgkj</h1>
dsfgdfgg
<h1>kgkgjgjgkdfgdfgdgdfjgkjgkj</h1>
dfgdffdgf
<h1>kgkgjgjsdssssssssssssssssssssgkjgkjgkj</h1>
dfgdfgdg
<h1>kgkgjgjgkjgkjgkgggggggggggggggggggj</h1>
'''
>>> soup = BeautifulSoup(myString)
>>> h1 = soup.select('h1')
>>> for i in h1:
    print i.text


kgkgjgjgkjgkjgkj
kdfgggggggggggggggggggkgjgjgkjgkjgkj
kgkgjgjgkdfgdfgdgdfjgkjgkj
kgkgjgjsdssssssssssssssssssssgkjgkjgkj
kgkgjgjgkjgkjgkgggggggggggggggggggj
>>> 

相关问题 更多 >

    热门问题