beautifulsoup 相关问题

Beautiful Soup是一个用于解析HTML / XML的Python包。此软件包的最新版本是版本4,导入为bs4。

Ebay 抓取以避免包含“匹配较少单词的结果”的列表

我正在尝试抓取我从乐高中取出的产品的 eBay 销售列表,然后计算出这些列表的平均售价。 我遇到的问题是它包含的产品...

回答 1 投票 0

来自亚马逊的网络抓取评论仅返回第一页的数据

我正在尝试从亚马逊抓取评论。评论可以出现在多个页面上,以抓取多个页面,我构建了一个链接列表,稍后我会单独抓取: # 构建 lin 列表...

回答 4 投票 0

使用 BeautifulSoup 单击 div 标签后抓取 html 页面

我在从网站上抓取问题和答案时遇到了一些麻烦: https://tech12h.com/bai-hoc/trac-nghiem-lich-su-12-bai-1-su-hinh-thanh-trat-tu-gioi-moi-sau-chien-tranh-gioi-thu-哈伊 该...

回答 1 投票 0

有没有办法从谷歌搜索中提取问题的答案

我实际上正在研究类似于 JARVIS 的人工智能。我想从谷歌中获取答案,这样当我向人工智能提出问题时;它会说出问题的答案。例如,如果我搜索 G...

回答 2 投票 0

如何在Python中使用Selenium在按钮单击后检索动态表数据?

问题详情 我正在开发一个个人项目,使用 Python 和 Selenium 从中小企业机构的数据库中抓取动态数据。网页显示公司信息...

回答 1 投票 0

如何从 soup 对象中删除所有可导航字符串?

有没有办法删除所有可导航字符串并仅在汤对象中保留标签?

回答 2 投票 0

VSCode / Pylance / 禁用类型检查?

我想禁用此示例中的 .text 等错误的下划线 但对我来说没问题,例如。 driver这样写是错误的 在我的 defaultSettings.json 中,此参数

回答 2 投票 0

从维基百科进行网络抓取后获取空数据框

我正在尝试从维基百科页面提取数据并将其加载到数据框中。在网络抓取并运行数据帧之后,Python 返回一个空数据帧,但事实并非如此。他...

回答 1 投票 0

无法使用 Selenium 访问废料数据的链接

我是使用 Selenium 的新手。最近,我试图从 JODI 数据源中删除数据,这是这个链接 JODI 数据源。该链接在浏览器中是有效的,但是当我使用 Selenium 或 bs4 访问时

回答 1 投票 0

Python BeautifulSoup 网络抓取 Tripadvisor 查看评论

所以我是网络抓取新手,并尝试查看特定酒店的评论列表。 我最初尝试通过选择特定课程来查看特定评论,但我没有得到任何

回答 2 投票 0

BeautifulSoup中如何获取文本节点的索引?

如何获取 HTML 字符串中文本节点的源索引? 标签具有 sourceline 和 sourcepos 这对此很有用,但 NavigableString 没有任何直接有用的属性,例如 ...

回答 1 投票 0

为什么BeautifulSoup在HTML中输出自关闭标签?

我尝试过3种不同的解析器:lxml、html5lib、html.parser 它们都输出无效的 HTML: >>> BeautifulSoup('', 'html.parser') >>> 美丽汤('<...

回答 1 投票 0

如何分割标签周围的 HTML 字符串?

如何使用Python通过指定的不配对标签分割html字符串?例如 split('你好那里', 'br') 应该返回 ['hello', 'there'], 分割('... 如何使用Python通过指定的不配对标签分割html字符串?例如 split('hello<br >there', 'br') 应该返回['hello', 'there'], split('<div id="d71">text1<br data-i="1">text2<br>text3</div>', 'br') 应该返回['<div id="d71">text1', 'text2', 'text3</div>'] 我看过了 def get_start_stop(source, tag_name): soup = BeautifulSoup(source, 'html.parser') return dir(soup.find(tag_name)) 但是我所希望的事情,sourcepos,string,strings,self_and_descendants,.nextSibling.sourcepos没有获得开始和结束索引所需的信息(据我所知)源字符串中的标签。 我也尝试过类似的事情 from lxml import html def split(input_str, tag_name): tree = html.fromstring(input_str) output_list = [] for element in tree.iter(): if element.tag == tag_name: output_list.append(element.tail) else: output_list.append(html.tostring(element, encoding='unicode', with_tail=False)) return output_list 但是with_tail=False没有达到我的预期 使用 lxml 作为 HTML 解析器 假设文档片段是 <div id="d71">text1<br/>text2<br/>text3</div> 查找 div 元素内的所有文本节点 from lxml import html doc = html.parse('temp.html') # returns a node set of text nodes d71txt = doc.xpath('//div[@id="d71"]/text()' 结果 ['text1', 'text2', 'text3'] 子元素的 tail 属性也包含其中一些文本节点。使用 descendant-or-self xpath 轴 >>> d71nodes = doc.xpath('//div[@id="d71"]/descendant-or-self::*') >>> d71nodes[0].text 'text1' >>> d71nodes[1].tail 'text2' >>> d71nodes[2].tail 'text3' 这是一个例子: from bs4 import BeautifulSoup text = """ <p>one<br>two</p> <p>two<br>three</p> """ page = BeautifulSoup(text, "html.parser") for t in page.find_all('p'): print("Got this:", t) for u in t: print(u) 输出: Got this: <p>one<br/>two</p> one <br/> two Got this: <p>two<br/>three</p> two <br/> three 我认为如何从中获取之前和之后应该非常清楚。 我认为BeautifulSoup并没有直接提供HTML标签的开始和结束索引,但是你可以通过在原始字符串中定位标签来找到它们 def get_start_stop(source, tag_name): soup = BeautifulSoup(source, 'html.parser') tag = soup.find(tag_name) if tag: start = source.find(f"<{tag_name}") end = source.find(">", start) + 1 return start, end return None

回答 3 投票 0

Beautiful Soup:查找包含字符串和其他元素的标签

我正在尝试查找包含“Country:”作为内部文本的标签。该标签还包含其他子标签 ()。 国家: 我正在尝试查找包含“Country:”作为内部文本的 <li> 标签。该标签还包含其他子项 (<a>)。 <li> Country: <a href="example.com">Germany</a> </li> 使用soup.find("li", string="Country: ") 似乎仅当 <li> 包含确切的字符串且不包含其他元素时才有效。使用正则表达式 soup.find("li", string=re.compile("Country: ")) 也不会返回任何结果。 在这种情况下正确的查询是什么? 您无法执行您想要的操作的原因是soup.find(string=re.compile("Country: "))在li元素中找到文本节点,而不是li节点,因此节点名称过滤器不匹配。 实现此目的的一种方法是将 filter 函数传递给 soup.find,它仅接受包含与正则表达式匹配的节点的 li 元素: import re from bs4 import BeautifulSoup soup = BeautifulSoup("""<li> Country: <a href="example.com">Germany</a> </li>""", features="html.parser") country_re = re.compile("Country:") def match_li_with_country(node): if node.name != "li": return False return bool(node.find(string=country_re)) country_li = soup.find(match_li_with_country) print(country_li) 另一个有相同的想法,但手动操作:首先找到所有 li 节点,然后过滤它们以找到包含所需字符串的节点: country_li = next(( node for node in soup.find_all('li') if node.find(string=country_re) ), None) print(country_li)

回答 1 投票 0

如何获取源字符串中标签的开始和结束位置?

如何使用 BeautifulSoup 解析 html 字符串并找到 HTML 标签的开始和结束索引?例如 get_start_stop('你好那里', 'br') 应该返回 (5, 13) 我已经...

回答 1 投票 0

当我导航到 URL 并获取 TABLE 标记的内容时,它是空的

我正在尝试从这个网站 https://data.anbima.com.br/debentures/AALM11/agenda?page=1&size=100& 抓取数据,当我查看 DevTools > Elements 时,它有一个 TABLE 标签与...

回答 1 投票 0

代码不会向下滚动播放列表来解析歌曲名称

在Python中使用beautifulsoup和selenium,我试图向下滚动播放列表中的歌曲列表来解析歌曲名称。然而,代码不会越过前 30 首歌曲并向下滚动...

回答 1 投票 0

无法使用 BS4 从巴塞罗那足球俱乐部网站获取西甲积分表的正确数据

我正在尝试从 https://www.fcbarcelona.com/en/football/first-team/stands 网站提取积分表数据。我想提取当前表(24-25)的数据,但正在提取...

回答 2 投票 0

Python:请求太多

我制作了一个python程序,它解析子reddits页面并列出它们。但问题是每当我尝试运行这个程序时,reddit 服务器总是给我错误:429,'太多

回答 4 投票 0

Python Web Scraping Selenium+BeautifulSoup with gspread 和 Google Sheets 大数据量问题

我正在制作一个网络抓取工具,可以从该页面抓取大约 1500 种产品的所有数据。 我正在提取商品名称,如果是畅销品,它是什么类型的衣服,怎么样

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.