Python 3-从beautifulSoup中的标记获取文本

Python 3-从beautifulSoup中的标记获取文本,python,html,python-3.x,beautifulsoup,Python,Html,Python 3.x,Beautifulsoup,我正在使用beautifulSoup从网站中提取数据。每次重新加载页面时,来自该网站的文本都会发生变化,因此基本上我希望能够将类名作为静态变量设置为焦点,因为文本是动态的 import requests from bs4 import BeautifulSoup url = 'xxxxxxxxxxx' r = requests.get(url) soup = BeautifulSoup(r.content, 'html.parser') class2 = soup.find_all(True,

我正在使用beautifulSoup从网站中提取数据。每次重新加载页面时,来自该网站的文本都会发生变化,因此基本上我希望能够将类名作为静态变量设置为焦点,因为文本是动态的

import requests
from bs4 import BeautifulSoup
url = 'xxxxxxxxxxx'
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
class2 = soup.find_all(True, class_="template_title")
print (class2)
它打印出
4

当页面重新加载时,我仍将焦点放在该区域上,但我不知道如何仅打印文本(在本例中为:4)

一旦解决了这个问题,我还有另一个问题:如果类包含多个标记,是否有办法获取更多静态数据,以确保它只打印我搜索的文本,而不打印更多?(我有等级,但我也可以使用height=“50”valign=“bottom”width=“535”吗?)

  • 您可以使用元素的
    text
    string
    属性

    elems = soup.find_all(True, class_='template_title')
    print([elem.string for elem in elems])
    # prints `['4']` for the given html snippet
    
  • 根据需要指定更多属性:

    elems = soup.find_all(True, class_='template_title',
                          height='50', valign='bottom', width='535')
    
  • 我通常使用.get_text()

  • 是的,你可以

    有一个方法:.find_all(name、attrs、recursive、string、limit、**kwargs)

    **kwargs:接受任何像高度、有效值、宽度之类的东西

    属性={'height':'50','valign':'bottom'}


  • 你能扩大你的答案吗?我不知道它们是如何工作的(可能会打印一些代码)谢谢你的回答:)谢谢你的帮助!但是,假设我第一次打印出源代码,然后决定要关注哪个标记(我问题中的标记)。我做了一个输入,询问类名,但是如果类标记中有超过1个标记,我不想更改代码来添加参数。是否有一种方法可以让我复制粘贴我希望保留的代码(例如:class=“template\u title”height=“50”valign=“bottom”width=“535”),并将参数放置在适当的位置以回答第二个问题?我知道我的英语不中肯,但我尽力了。再次感谢您的回答:)@bob,如果我理解了您的问题,您也可以将属性作为字典传递:
    soup.find_all(True,dict(class='template\u title',height='50',valign='bottom',width='535'))
    。那么我在这里怎么做:
    string\u keep=input(“要保留的参数:”
    class2=soup.find_all(True,dict(string_keep))
    在class2:print(x.string)
    如果我的输入是:
    class=“template_title”,height=“50”,valign=“bottom”,width=“535“
    我知道我的输入看起来像是一个字符串,而不是一个dict,但我该如何解决这个问题?这意味着运行脚本的用户可以决定保留哪个参数(如果有)sense@bob,您需要解析输入并将其转换为字典。你能为这个问题单独提问吗?我试着在dict中解析参数,但没有成功!当我使用你的问题2的样本时,它确实起了作用。我想这是dict函数的问题。你能解释一下为什么会这样,或者如何修复它吗?