我正在facebook的html页面中搜索一个名字。 如果我像这样采用文件html.txt:
html = open('html.txt','r').read()
soup = BeautifulSoup(html)
如果我搜索这个名字似乎没问题,但是如果我尝试用BS搜索我就找不到任何东西..
>>>html.find("Joseph Tan")
98939
>>>html[98700:99000]
'<div class="fwn fcg"><span class="fcg"><span class="fwb"><a class="profileLink" href="https://www.facebook.com/ASD.391" data-ft="{"tn":"l"}" data-hovercard="/ajax/hovercard/user.php?id=123456">Alex Tan</a></span> condivided the photo <a class="profileLink" '
>>> soup.findAll('div',{'class':'fwn fcg'})
[]
>>> soup.findAll('span',{'class':'fwb'})
[]
>>> soup.findAll('a',{'class':'profileLink'})
[]
>>>
有人可以帮帮我吗?非常感谢
编辑:重新创建的HTML页面
答案 0 :(得分:0)
它的工作原理如下:
print soup.find_all('div', class_=['fwn','fcg'])
OUTPUT:
[<div class="uiHeaderActions rfloat _ohf fsm fwn fcg"><a class="_1c1m" href="#" role="button">Segna tutti come già letti</a> · <a accesskey="m" ajaxify="/ajax/messaging/composer.php" href="/messages/new/" id="u_0_8" rel="dialog" role="button">Invia un nuovo messaggio</a></div>, <div class="uiHeaderActions fsm fwn fcg"><a href="#" id="u_0_9" role="button">Segna come già letto</a> · <a href="/settings?tab=notifications&section=on_facebook" target="_blank">Impostazioni</a></div>, <div class="fsm fwn fcg"><a ajaxify="/settings/language/language/?uri=https%3A%2F%2Fwww.facebook.com%2Fshares%2Fview%3Fid%3D10152555113196961&source=TOP_LOCALES_DIALOG" href="#" rel="dialog" role="button" title="Usa Facebook in un'altra lingua.">Italiano</a></div>]
根据==>this链接,这是使用BS搜索类和其他HTML元素的方式。请检查。
有两个问题。
1。您编写的方式与我提供的上述链接不匹配。可能是您没有使用BS的更新版本。
2。有两个课程&#39; fwn&#39;并且&#39; fcg&#39;。所以你必须在列表中给出他们的名字,这就是我得到输出的方式。
同样适用于&#39; span&#39;和&#39; a&#39;如下:
print soup.find_all('span', class_='jewelCount')
print soup.find_all('a', class_='_awj')
找不到您的'span'
课程'fwb'
和'a'
课程'profileLink'
,因为它们不在HTML中。
您可以通过打印所有跨度来检查。
写 print soup.find_all('a')
和 print soup.find_all('span')
* 进行检查靠你自己。
希望这会有所帮助,如果没有,再写一次! :)