gpt4 book ai didi

python - 标签 python html

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:15 24 4
gpt4 key购买 nike

我想从给定网站中提取所有主题标签:例如,“我喜欢#stack Overflow,因为#people 非常#helpful!”这应该将 3 个主题标签拉入一个表中。在我定位的网站中,有一个带有 #tag 描述的表格所以我们可以发现#love这个标签讲述的是爱

这是我的作品:

    #import the library used to query a website
import urllib2
#specify the url
wiki = "https://www.symplur.com/healthcare-hashtags/tweet-chats/all"
#Query the website and return the html to the variable 'page'
page = urllib2.urlopen(wiki)
#import the Beautiful soup functions to parse the data returned from the
website
from bs4 import BeautifulSoup
#Parse the html in the 'page' variable, and store it in Beautiful Soup
format
soup = BeautifulSoup(page, "lxml")
print soup.prettify()
s = soup.get_text()
import re
re.findall("#(\w+)", s)

我的输出有问题:第一个是输出如下所示:[u'eeeeee', u'333333', u'222222', u'222222', u'222222', u'222222', u'222222', u'222222', u'222222', u'AASTGrandRoundsacute'

输出将主题标签与描述中的第一个单词连接起来。如果我与我在输出之前引用的示例进行比较,则输出为“lovethis”。

我怎样才能只提取主题标签后的一个单词。

谢谢

最佳答案

我认为不需要使用regex来解析从页面获得的文本,您可以使用BeautifulSoup本身来解析。我在下面的代码中使用Python3.6,只是为了显示整个代码,但重要的一行是 hashtags = soup.findAll('td', {'id':'tweetchatlist_hashtag'})。请注意,表中的所有主题标签都有 td 标签和 id 属性 = tweetchatlist_hashtag,因此调用 .findAll 就是这样去这里:

import requests
import re
from bs4 import BeautifulSoup

wiki = "https://www.symplur.com/healthcare-hashtags/tweet-chats/all"
page = requests.get(wiki).text
soup = BeautifulSoup(page, "lxml")

hashtags = soup.findAll('td', {'id':'tweetchatlist_hashtag'})

现在让我们看看列表中的第一项:

>>> hashtags[0]
<td id="tweetchatlist_hashtag" itemprop="location"><a href="https://www.symplur.com/healthcare-hashtags/aastgrandrounds/" title="#AASTGrandRounds">#AASTGrandRounds</a></td>

所以我们看到我们真正想要的是atitle属性的值:

>>> hashtags[0].a['title']
'#AASTGrandRounds'

要继续使用列表理解获取所有主题标签的列表:

>>> lst = [hashtag.a['title'] for hashtag in hashtags]

如果您不使用列表理解语法,上面的行与此类似:

>>> lst = []
>>> for hashtag in hashtags:
lst.append(hashtag.a['title'])

lst 然后是所需的输出,查看列表的前 20 项:

>>> lst[:20]
['#AASTGrandRounds', '#abcDrBchat', '#addictionchat', '#advocacychat', '#AetnaMyHealthy', '#AlzChat', '#AnatQ', '#anzOTalk', '#AskAvaility', '#ASPChat', '#ATtalk', '#autchat', '#AXSChat', '#ayacsm', '#bcceu', '#bccww', '#BCSM', '#benurse', '#BeTheDifference', '#bioethx']

关于python - 标签 python html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45438317/

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