如何使用beautifulsoup4在python中的pre-tag中获取文本



我在stackoverflow.com上看到了各种例子,但没有什么能解决我的问题,我有以下网站:https://meme-api.herokuapp.com/gimme.

这个网站有一个预标记,里面有文本,但当我试图获取预标记中的文本时,它只返回[]

代码:

requester = {'User-Agent': 'Mozilla/5.0'}
req=Request("https://meme-api.herokuapp.com/gimme",headers=requester)
u =urlopen(req)
soup = BeautifulSoup(u.read(), features="lxml")
text = soup.find('pre')
print(text)

输出:[]

URL返回一个JSON,所以BeautifulSoup在这里不会有太多作用。

试试这个:

import requests
r = requests.get("https://meme-api.herokuapp.com/gimme").json()
print(r['title'], r['url'])

输出:Pls send help https://i.redd.it/67scdl09rkn51.jpg

整个响应看起来是这样的:

{'postLink': 'https://redd.it/iu4q6f', 'subreddit': 'memes', 'title': 'Pls send help', 'url': 'https://i.redd.it/67scdl09rkn51.jpg', 'nsfw': False, 'spoiler': False, 'author': 'deinie', 'ups': 9787}

由于您的代码以{"postLink":"https://redd.it/iu9v3o","subreddit":"me_irl","title":"me_irl","url":"https://i.redd.it/b4ccrc396mn51.jpg","nsfw":false,"spoiler":false,"author":"TheNBplant","ups":43}的形式返回输出,因此这里没有预标记。因此输出为零。

最新更新