【问题标题】:Web scraping Button BeautifulSoup Python网页抓取按钮 BeautifulSoup Python
【发布时间】:2020-10-04 05:54:42
【问题描述】:

我正在尝试从具有确定类的按钮中抓取跨度。这是网站页面的代码。

<button class="sqdOP yWX7d     _8A5w5    " type="button">altri <span>17</span></button>

我想找到每次明显变化的“17”。谢谢。 这个我试过了,还是不行

for item in soup.find_all('button', {'class': 'sqdOP yWX7d     _8A5w5    '}):

【问题讨论】:

  • 使用选择器。选择器button.sqdOP span 将选择这个跨度。
  • 谢谢,我应该把它放在哪里?
  • soup.select('&lt;selector here&gt;')
  • 是的,但我需要具有此特定类的按钮中的跨度。
  • 选择跨度。

标签: python class button web-scraping beautifulsoup


【解决方案1】:

对于复杂的选择,最好使用选择器。这些工作与 CSS 非常相似。

p 选择类型为p 的元素。

p.example 选择类型为p 和类为example 的元素。

p span 选择p 内的任何span

还有其他的,但本示例只需要这些。

这些可以随意嵌套。例如,p.example span.foo 选择任何 spanfoo 内的任何 pexample

现在,一个元素可以有多个类,它们之间用空格分隔。 &lt;p class="foo bar"&gt;Hello, World!&lt;/p&gt; 具有 foobar 作为类。

我认为我可以肯定地假设 sqdOP 类是独一无二的。您可以使用上述方法轻松构建选择器:

button.sqdOP span

现在,发出select,BeautifulSoup 将返回匹配元素的列表。如果这是唯一的,您可以安全地使用[0] 获取第一个项目。所以,选择span的最终代码:

soup.select('button.sqdOP span')[0]

【讨论】:

  • @pythonchanger 哎呀。如果你想遍历所有的,不要使用[0]
  • 您对如何解决它有任何想法吗?
  • @pythonchanger 你能把你用来获取网页和创建汤实例的代码发给我吗?我会在本地进行试验。
  • try: sauce = urllib.request.urlopen(msg['text']).read() soup = bs.BeautifulSoup(sauce, 'html.parser') for item in soup.select('button.sqdOP span')[0]: #answer = ''.join(filter(whitelist.__contains__, item.text)) bot.sendMessage(chat_id, item) except urllib.error.HTTPError as err: if err.code == 404: bot.sendMessage(chat_id, "Link del post non corretto, incolla un link di questo tipo: https://www.instagram.com/p/xxxxx")
  • idk 为什么堆栈会更改所有表格
猜你喜欢
  • 2018-04-25
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
  • 2014-06-20
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多