使用Python从具有序列化范围ID的HTML页面中抓取数据

时间:2018-08-04 19:35:05

标签: python web-scraping beautifulsoup

我正在处理某些HTML页面,需要从这些HTML页面抓取数据。问题是,范围ID已编号。 例如-

ContentPlaceHolder_0, ContentPlaceHolder_1, ContentPlaceHolder_2 ..... ContentPlaceHolder_n

我需要在每一页上从所有这些span标签中获取数据。使用Beautiful Soup获取此数据的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以尝试BeautifulSoup中内置的CSS选择器。这将选择所有ID以ContentPlaceHolder开头的跨度:

soup.select('span[id^=ContentPlaceHolder]')

示例:

from bs4 import BeautifulSoup

html = """<span id='ContentPlaceHolder_0'>0</span>
<span id='ContentPlaceHolder_1'>1</span>
<span id='ContentPlaceHolder_2'>2</span>
<span id='ContentPlaceHolder_3'>3</span>

<span id='xxx'>xxx</span>"""

soup = BeautifulSoup(html, 'lxml')

for s in soup.select('span[id^=ContentPlaceHolder]'):
    print(s.text)

打印:

0
1
2
3