xpath获取Python中的元素列表

我正在尝试从看起来像这样的页面中抓取元素列表:


<div class="container">

    <b>1</b>

    <b>2</b>

    <b>3</b>

</div>

<div class="container">

    <b>4</b>

    <b>5</b>

    <b>6</b>

</div>

我想使用xpath获取列表或元组:[1,2,3],[4,5,6] ...


在页面上使用for循环,我得到每个列表的第一个元素或所有数字作为一个列表。


你能帮我解决这个问题吗?预先感谢您的任何帮助!


慕码人2483693
浏览 324回答 2
2回答

温温酱

对于静态页面的Web抓取,最好使用bs4软件包。并使用bs4可以轻松实现您的目标,如下所示:from bs4 import BeautifulSoupsource = """<div class="container">&nbsp; &nbsp; <b>1</b>&nbsp; &nbsp; <b>2</b>&nbsp; &nbsp; <b>3</b></div><div class="container">&nbsp; &nbsp; <b>4</b>&nbsp; &nbsp; <b>5</b>&nbsp; &nbsp; <b>6</b></div>"""soup = BeautifulSoup(source, 'html.parser')&nbsp; # parse content/ page sourcesoup.find_all('div', {'class': 'container'})&nbsp; # find all the div element (second argument is optional mentioned to scrape/find only element with attribute value)print([[int(x.text) for x in i.find_all('b')] for i in soup.find_all('div', {'class': 'container'})])&nbsp; # get list of all div's number list as you require输出:[[1, 2, 3], [4, 5, 6]]

PIPIONE

您可以使用此xpath表达式,这将给您两个字符串.//*[@class='container']&nbsp;&nbsp;&nbsp;&nbsp;➡&nbsp;'1&nbsp;2&nbsp;3',&nbsp;'4&nbsp;5&nbsp;6'如果您希望使用6根琴弦.//*[@class='container']/b&nbsp;&nbsp;➡&nbsp;'1','2','3','4','5','6'尽管您必须将xpath表达式分开,以获取所需的确切信息.//*[@class='container'][1]/b&nbsp;&nbsp;➡&nbsp;'1','2','3' .//*[@class='container'][2]/b&nbsp;&nbsp;➡&nbsp;'4','5','6'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python