gpt4 book ai didi

python - BeautifulSoup - 不读取汤中隐藏元素中包含的所有链接

转载 作者:行者123 更新时间:2023-12-01 05:20:03 25 4
gpt4 key购买 nike

我已经尝试了与 BeautifulSoup 相关的所有答案,但没有找到页面上的所有链接,但它们似乎都不起作用。我正在 Facebook 上进行一些学术研究,并尝试从一些状态链接中抓取/hashtag/元素,这些元素无法通过 FB 图形 API 获得。这是一个示例帖子:https://www.facebook.com/339278974073/posts/10151731033014074

如果我运行以下代码块:

import urllib2
from BeautifulSoup import BeautifulSoup
url = 'https://www.facebook.com/339278974073/posts/10151731033014074'
request = urllib2.Request(url)
response = urllib2.urlopen(request)
soup = BeautifulSoup(response)

然后查看变量“soup”的输出,我可以看到其中存在带有“/hashtag/”的链接。大约一年前,我所要做的就是按以下步骤查找主题标签的所有实例:

hashtag = soup.findAll('a', href=re.compile('/hashtag/?')) 

现在,它似乎被破坏了,因为 BeautifulSoup 没有读取包含主题标签的文本 block ——它们都在我可以在汤中看到的“hidden_​​elem”代码类中,但 BS 没有读取它。任何答案将不胜感激!

这是汤的一部分,BS 没有找到任何东西(我为造成的困惑表示歉意):

[<code class="hidden_elem" id="u_0_c"><!--<!-- <div class="_5pcb"><div class="_5jmm  
_5pat _5uch _5uun" data-ft="&#123;&quot;fbfeed_location&quot;:5&#125;" id="u_0_3"><div
class="clearfix userContentWrapper _5pcr"><a class="_5pb8"
href="https://www.facebook.com/IndianaOrganProcurementOrganization" data-
ft="&#123;&quot;tn&quot;:&quot;\\u003C&quot;&#125;"><img class="_s0 _5xib _rw img"
src="https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/t1.0-
1/p50x50/602346_10151254741684074_596547152_s.jpg" alt="" /></a>
<div class="_5pax"><h5 class="_5yig _5pbw" data-
ft="&#123;&quot;tn&quot;:&quot;C&quot;&#125;"><div class="fwn fcg">
<span class="fwb fcg" data-ft="&#123;&quot;tn&quot;:&quot;k&quot;&#125;">
<a href="https://www.facebook.com/IndianaOrganProcurementOrganization">Indiana
Organ Procurement Organization</a></span></div></h5><div class="mbs _5pbx userContent"
data-ft="&#123;&quot;tn&quot;:&quot;K&quot;&#125;"><p>Stop by our tent and get
your &#064;jimmybuffet <a class="_58cn"
href="https://www.facebook.com/hashtag/pencilthinmustache?source=feed_text"
data-ft="&#123;&quot;tn&quot;:&quot;*N&quot;,&quot;type&quot;:104&#125;">
<span class="_58cl">‪#‎</span><span class="_58cm">PencilThinMustache‬</span></a>
and <a class="_58cn" href="https://www.facebook.com/hashtag/sayyes?source=feed_text"
.......
[some code deleted]
<div id="substream_pagelet" data-referrer="substream_pagelet"></div> -->--></code>]

我想要得到的是/hashtag/url 中的文本,例如“PencilThinMustache”,但我很高兴此时只获取 url。

最佳答案

您的<code class="hidden_elem">标签包含 HTML 注释,元素。

将它们分别解析为 HTML:

>>> comment = soup.find('code').contents[0]
>>> type(comment)
<class 'BeautifulSoup.Comment'>
>>> BeautifulSoup(comment).findAll('a', href=re.compile('/hashtag/?'))
[<a class="_58cn" href="https://www.facebook.com/hashtag/pencilthinmustache?source=feed_text" data-ft='{"tn":"*N","type":104}'><span class="_58cl">‪#‎</span><span class="_58cm">PencilThinMustache‬</span></a>, <a class="_58cn" href="https://www.facebook.com/hashtag/sayyes?source=feed_text" data-ft='{"tn":"*N","type":104}'><span class="_58cl">‪#‎</span><span class="_58cm">sayyes‬</span></a>, <a class="_58cn" href="https://www.facebook.com/hashtag/donatelife?source=feed_text" data-ft='{"tn":"*N","type":104}'><span class="_58cl">‪#‎</span><span class="_58cm">donatelife‬</span></a>]
>>> for link in BeautifulSoup(comment).findAll('a', href=re.compile('/hashtag/?')):
... print link.text
...
‪#‎PencilThinMustache‬
‪#‎sayyes‬
‪#‎donatelife‬

关于python - BeautifulSoup - 不读取汤中隐藏元素中包含的所有链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22586599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com