使用 Beautiful Soup findall 提取单引号之间的文本
Use Beautiful Soup findall to extract text between single quotations
我正在使用 Beautiful Soup,我想使用 findall 方法提取 '' 中的文本。
content = urllib.urlopen(address).read()
soup = BeautifulSoup(content, from_encoding='utf-8')
soup.prettify()
x = soup.findAll(do not know what to write)
以汤汁为例:
<td class="leftCell identityColumn snap" onclick="fundview('Schroder
European Special Situations');" title="Schroder European Special
Situations"> <a class="coreExpandArrow" href="javascript:
void(0);"></a> <span class="sigill"><a class="qtpop"
href="/vips/ska/all/sv/quicktake/redirect?perfid=0P0000XZZ3&flik=Chosen">
<img
src="/vips/Content/corestyles/4pSigillGubbe.gif"/></a></span>
<span class="bluetext" style="white-space: nowrap; overflow:
hidden;">Schroder European Spe..</span>
我希望 soup.findAll(do not know what to write)
的结果是:Schroder European Special Situations
并且 findall 逻辑应该基于它是单引号之间的文本。
找到 td
元素并获取 onclick
属性值 - 此时 BeautifulSoup
的工作将完成。下一步是从属性值中提取所需的文本——让我们为此使用正则表达式。实施:
import re
onclick = soup.select_one("td.identityColumn[onclick]")["onclick"]
match = re.search(r"fundview\('(.*?)'\);", onclick)
if match:
print(match.group(1))
或者,看起来 span
和 bluetext
class 里面有所需的文本:
soup.select_one("td.identityColumn span.bluetext").get_text()
此外,请确保您使用的是 4th BeautifulSoup
version 并且您的导入语句是:
from bs4 import BeautifulSoup
我正在使用 Beautiful Soup,我想使用 findall 方法提取 '' 中的文本。
content = urllib.urlopen(address).read()
soup = BeautifulSoup(content, from_encoding='utf-8')
soup.prettify()
x = soup.findAll(do not know what to write)
以汤汁为例:
<td class="leftCell identityColumn snap" onclick="fundview('Schroder
European Special Situations');" title="Schroder European Special
Situations"> <a class="coreExpandArrow" href="javascript:
void(0);"></a> <span class="sigill"><a class="qtpop"
href="/vips/ska/all/sv/quicktake/redirect?perfid=0P0000XZZ3&flik=Chosen">
<img
src="/vips/Content/corestyles/4pSigillGubbe.gif"/></a></span>
<span class="bluetext" style="white-space: nowrap; overflow:
hidden;">Schroder European Spe..</span>
我希望 soup.findAll(do not know what to write)
的结果是:Schroder European Special Situations
并且 findall 逻辑应该基于它是单引号之间的文本。
找到 td
元素并获取 onclick
属性值 - 此时 BeautifulSoup
的工作将完成。下一步是从属性值中提取所需的文本——让我们为此使用正则表达式。实施:
import re
onclick = soup.select_one("td.identityColumn[onclick]")["onclick"]
match = re.search(r"fundview\('(.*?)'\);", onclick)
if match:
print(match.group(1))
或者,看起来 span
和 bluetext
class 里面有所需的文本:
soup.select_one("td.identityColumn span.bluetext").get_text()
此外,请确保您使用的是 4th BeautifulSoup
version 并且您的导入语句是:
from bs4 import BeautifulSoup