Python:使用Beautifulsoup从html获取文本

Mpizos Dimitris

我正在尝试从此链接链接示例中提取排名文本编号:kaggle用户排名no1图像更清晰:

在此处输入图片说明

我正在使用以下代码:

def get_single_item_data(item_url):
    sourceCode = requests.get(item_url)
    plainText = sourceCode.text
    soup = BeautifulSoup(plainText)
    for item_name in soup.findAll('h4',{'data-bind':"text: rankingText"}):
        print(item_name.string)

item_url = 'https://www.kaggle.com/titericz'   
get_single_item_data(item_url)

结果是None问题是soup.findAll('h4',{'data-bind':"text: rankingText"})输出:

[<h4 data-bind="text: rankingText"></h4>]

但是在检查时链接的html中是这样的:

<h4 data-bind="text: rankingText">1st</h4>可以在图中看到:

在此处输入图片说明

很明显,文本丢失了。我该如何超越?

编辑:soup在终端中打印变量,我可以看到该值存在:在此处输入图片说明

因此,应该有一种通过进行访问的方法soup

编辑2:我尝试使用此stackoverflow问题中投票率最高的答案,但未成功可能是周围的解决方案。

ec

如果您不打算selenium按照@Ali的建议尝试通过浏览器自动化,则必须解析包含所需信息的javascript您可以通过不同的方式来执行此操作。这是一个工作代码,该代码script通过正则表达式模式定位,然后提取profile对象,将其加载json到Python字典中,并打印出所需的排名:

import re
import json

from bs4 import BeautifulSoup
import requests


response = requests.get("https://www.kaggle.com/titericz")
soup = BeautifulSoup(response.content, "html.parser")

pattern = re.compile(r"profile: ({.*}),", re.MULTILINE | re.DOTALL)
script = soup.find("script", text=pattern)

profile_text = pattern.search(script.text).group(1)
profile = json.loads(profile_text)

print profile["ranking"], profile["rankingText"]

印刷:

1 1st

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用BeautifulSoup从HTML获取文本

来自分类Dev

使用beautifulsoup从HTML获取链接文本

来自分类Dev

使用BeautifulSoup在HTML标记后获取文本

来自分类Dev

在Python中使用BeautifulSoup从HTML文本中的嵌套元素中获取文本

来自分类Dev

使用Python和BeautifulSoup解析HTML-在<a>标记内外获取文本

来自分类Dev

在使用BeautifulSoup忽略格式标签的同时,如何从html获取文本?

来自分类Dev

如何在Python中使用Beautifulsoup获取嵌套标签的文本?

来自分类Dev

使用BeautifulSoup和Python从item标签获取地址文本

来自分类Dev

网页抓取 - 从使用 BeautifulSoup 和 Python 的类中获取文本?

来自分类Dev

BR 中的文本无法使用 python beautifulsoup 获取

来自分类Dev

尝试使用python和beautifulsoup获取onclick属性的文本

来自分类Dev

使用BeautifulSoup从html编辑文本

来自分类Dev

在Python中使用BeautifulSoup提取HTML段落内的文本

来自分类Dev

使用Beautifulsoup Python提取没有HTML标签的文本

来自分类Dev

在Python中使用BeautifulSoup提取HTML段落内的文本

来自分类Dev

获取跨度内的文本html beautifulSoup

来自分类Dev

使用Python Beautifulsoup从复杂的html标签获取数据

来自分类Dev

使用BeautifulSoup / Python从HTML主体获取嵌套的div元素

来自分类Dev

python:无法使用BeautifulSoup从html获取特定数据

来自分类Dev

使用 python beautifulsoup 从 html 中获取指定值

来自分类Dev

使用 BeautifulSoup 获取 HTML 标签

来自分类Dev

python BeautifulSoup无法从网页获取文本

来自分类Dev

使用BeautifulSoup获取没有标签的文本

来自分类Dev

使用beautifulsoup从br标签获取文本

来自分类Dev

无法使用BeautifulSoup获取span属性的文本

来自分类Dev

使用BeautifulSoup从<pre>元素获取文本

来自分类Dev

使用BeautifulSoup获取跨度中的跨度文本

来自分类Dev

使用BeautifulSoup获取没有标签的文本?

来自分类Dev

使用 Beautifulsoup 时如何获取文本标记

Related 相关文章

  1. 1

    使用BeautifulSoup从HTML获取文本

  2. 2

    使用beautifulsoup从HTML获取链接文本

  3. 3

    使用BeautifulSoup在HTML标记后获取文本

  4. 4

    在Python中使用BeautifulSoup从HTML文本中的嵌套元素中获取文本

  5. 5

    使用Python和BeautifulSoup解析HTML-在<a>标记内外获取文本

  6. 6

    在使用BeautifulSoup忽略格式标签的同时,如何从html获取文本?

  7. 7

    如何在Python中使用Beautifulsoup获取嵌套标签的文本?

  8. 8

    使用BeautifulSoup和Python从item标签获取地址文本

  9. 9

    网页抓取 - 从使用 BeautifulSoup 和 Python 的类中获取文本?

  10. 10

    BR 中的文本无法使用 python beautifulsoup 获取

  11. 11

    尝试使用python和beautifulsoup获取onclick属性的文本

  12. 12

    使用BeautifulSoup从html编辑文本

  13. 13

    在Python中使用BeautifulSoup提取HTML段落内的文本

  14. 14

    使用Beautifulsoup Python提取没有HTML标签的文本

  15. 15

    在Python中使用BeautifulSoup提取HTML段落内的文本

  16. 16

    获取跨度内的文本html beautifulSoup

  17. 17

    使用Python Beautifulsoup从复杂的html标签获取数据

  18. 18

    使用BeautifulSoup / Python从HTML主体获取嵌套的div元素

  19. 19

    python:无法使用BeautifulSoup从html获取特定数据

  20. 20

    使用 python beautifulsoup 从 html 中获取指定值

  21. 21

    使用 BeautifulSoup 获取 HTML 标签

  22. 22

    python BeautifulSoup无法从网页获取文本

  23. 23

    使用BeautifulSoup获取没有标签的文本

  24. 24

    使用beautifulsoup从br标签获取文本

  25. 25

    无法使用BeautifulSoup获取span属性的文本

  26. 26

    使用BeautifulSoup从<pre>元素获取文本

  27. 27

    使用BeautifulSoup获取跨度中的跨度文本

  28. 28

    使用BeautifulSoup获取没有标签的文本?

  29. 29

    使用 Beautifulsoup 时如何获取文本标记

热门标签

归档