【发布时间】:2018-03-08 04:14:16
【问题描述】:
我正在尝试从以下网页中提取文本:
<div class="MYCLASS">Category1: <a id=category1 href="SomeURL" >
Text1 I want</a> > Category2: <a href="SomeURL" >Text2 I want</a></div>
我试过了:
for div in soup.find_all('div', class_='MYCLASS'):
for url in soup.find_all('a', id='category1'):
print(url)
它返回了:
<a href="someURL" id="category1">Text1 I want</a>
所以我把文字分开了……
for div in soup.find_all('div', class_='MYCLASS'):
for url in soup.find_all('a', id='category1'):
category1 = str(url).split('category1">')[1].split('</a>')[0]
print(category1)
并提取“我想要的Text1”,但仍然错过“我想要的Text2”。任何想法?谢谢。
编辑:
源代码中还有其他,所以如果我从我的代码中删除id=,它将返回所有其他我不需要的文本。例如,
<div class="MYClass"><span class="Class">RandomText.<br>RandomText.<br>
<a href=someURL>RandomTextExtracted.</a><br>
还有,
</div><div class=MYClass>
<a href="SomeURL>RandomTextExtracted</a>
【问题讨论】:
-
您专门获取了所有 ID 为
category1但Text2 I want没有该 ID 的链接。 -
@JackRyan,我意识到了,这就是为什么我无法提取我想要的 Text2。您认为对此有何帮助?谢谢。
-
只需从
find_all()中删除id='category1'。 -
感谢@KeyurPotdar,但源中还有其他,如果我只留下[find_all('a')],它会提取我不想要的所有其他文本。任何想法?谢谢。
标签: python web-scraping beautifulsoup