beautifulsoup 相关问题

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

无法删除抓取数据上的标头

我有以下代码可以抓取此网站:https://www.hhs.gov/hipaa/for-professionals/compliance-enforcement/agreements/index.html 它会刮掉大约四分之一的链接和标题......

回答 1 投票 0

无法解决Python抓取代码问题

我正在使用 python/bs 来抓取此网站:https://www.hhs.gov/hipaa/for-professionals/compliance-enforcement/agreements/index.html 有两个令人烦恼的问题我无法解决: 它总是包括...

回答 2 投票 0

获取BeautifulSoup Class属性值

我想使用BeautifulSoup从下面的结构html内容中获取仅3.5、4.3和2.5的值。请帮助如何废弃该值。 3.5 我想使用BeautifulSoup从下面的结构html内容中获取仅3.5、4.3和2.5的值。请帮忙如何废弃该值。 <div class="abc">3.5<img class="def" src=''</div> <div class="abc">4.3<img class="def" src=''</div> <div class="abc">2.5<img class="def" src=''</div> 这里有一个关于如何实现这一目标的快速片段。由于您没有提供任何代码,我不知道您的 html 来自哪里,所以我只是将您给定的 html 设置为变量。 from bs4 import BeautifulSoup html_content = """ <div class="abc">3.5<img class="def" src=''</div> <div class="abc">4.3<img class="def" src=''</div> <div class="abc">2.5<img class="def" src=''</div> """ # Initialize html parser soup = BeautifulSoup(html_content, 'html.parser') # Find all div elements with class 'abc' div_elements = soup.find_all('div', class_='abc') # Extract the text from each div element and print the value for div in div_elements: value = div.text.strip() # Get the text and remove leading/trailing spaces print(value) 这将打印出: 3.5 4.3 2.5

回答 1 投票 0

错误:NoneType'对象没有属性'find_all'

我有一些基本的代码用于从页面中提取数据,问题是一周前它停止工作,我收到错误“NoneType”对象没有属性“find_all”,也许有些东西有

回答 1 投票 0

如何在保持兄弟姐妹beautifulsoup的同时插入和删除标签?

我收到一个 html 格式的表格,需要迭代它以找到设置了 rowspan 的标签。一旦找到 rowspan= 的单元格,我需要插入一段代码: 我收到一个 html 格式的表格,需要遍历它以查找设置了 rowspan 的标签。一旦找到带有 rowspan=<a number> 的单元格,我需要插入一段代码: <tr> <th rowspan="14" >Words</th> <td style="height: 30px;"></td> <td style="text-align: center; height: 30px;"></td> <td style="height: 30px;"></td> <td style="text-align: right; padding: 7px; min-width: 75px"></td> <td style="height: 30px;"></td> <td style="height: 30px;"></td> <td style="height: 30px;"></td> </tr>\n 作为当前行上方的行。然后,我需要从当前行中删除这个 <th>。 例如,这是我要搜索的代码: <table border="1" class="dataframe" style="border: 1px solid grey"> <tbody> <tr> <th>Records</th> <th>Worth</th> <td>30</td> <td>is</td> <td>50</td> <td>0</td> <td>good</td> <td></td> </tr> <tr> <!-- this is the code im looking for --> <th rowspan="13" valign="top">Reports</th> <!-- --> <th>Worth</th> <td>30</td> <td>=</td> <td>40</td> <td>0</td> <td>bad</td> <td></td> </tr> <tr> <th>Worth</th> <td>is</td> <td>44</td> <td>400.0</td> <td></td> <td>bad</td> <td></td> </tr> </tbody> </table> 因此,一旦我找到带有 <th> 的 rowspan,我需要将该块插入到其上方的行,然后从当前行中删除 <th>。这就是我现在的做法: for child in soup.tbody.descendants: if child.name == 'th': if 'rowspan' in child.attrs: new_row = <<that block from above>> crazy_tag = bs4.BeautifulSoup(new_row, 'html.parser') x = child.find_previous('tr') x.insert_before(crazy_tag) child.extract() 我正在寻找的输出是这样的: <table border="1" class="dataframe" style="border: 1px solid grey"> <tbody> <tr> <th>Records</th> <th>Worth</th> <td>30</td> <td>is</td> <td>50</td> <td>0</td> <td>good</td> <td></td> </tr> <tr> <th rowspan="14" >Words</th> <td style="height: 30px;"></td> <td style="text-align: center; height: 30px;"></td> <td style="height: 30px;"></td> <td style="text-align: right; padding: 7px; min-width: 75px"></td> <td style="height: 30px;"></td> <td style="height: 30px;"></td> <td style="height: 30px;"></td> </tr> <tr> <th>Worth</th> <td>30</td> <td>=</td> <td>40</td> <td>0</td> <td>bad</td> <td></td> </tr> <tr> <th>Worth</th> <td>is</td> <td>44</td> <td>400.0</td> <td></td> <td>bad</td> <td></td> </tr> </tbody> </table> 好消息是,我的代码做了我想要的事情,并且得到了想要的输出。坏消息是,在完成之前我还必须对此 html 执行其他操作。在我执行此操作并继续循环后代之后,下一次迭代给我 None 。我认为 extract() 保持了树的结构完整,但似乎我插入的块或我删除的行都没有保留树结构。有什么想法吗? 我的问题基本上可以归结为:如何将一些 html 插入到一个漂亮的 soup 对象中并提取一行而不破坏文档中的兄弟关系? 相反,.insert_before()/.extract(),您可以使用简单的.replace_with(): from bs4 import BeautifulSoup html_text = """\ <table border="1" class="dataframe" style="border: 1px solid grey"> <tbody> <tr> <th>Records</th> <th>Worth</th> <td>30</td> <td>is</td> <td>50</td> <td>0</td> <td>good</td> <td></td> </tr> <tr> <!-- this is the code im looking for --> <th rowspan="13" valign="top">Reports</th> <!-- --> <th>Worth</th> <td>30</td> <td>=</td> <td>40</td> <td>0</td> <td>bad</td> <td></td> </tr> <tr> <th>Worth</th> <td>is</td> <td>44</td> <td>400.0</td> <td></td> <td>bad</td> <td></td> </tr> </tbody> </table>""" snippet = """\ <tr> <th rowspan="14" >Words</th> <td style="height: 30px;"></td> <td style="text-align: center; height: 30px;"></td> <td style="height: 30px;"></td> <td style="text-align: right; padding: 7px; min-width: 75px"></td> <td style="height: 30px;"></td> <td style="height: 30px;"></td> <td style="height: 30px;"></td> </tr>""" soup = BeautifulSoup(html_text, "html.parser") for th in soup.select("th[rowspan]"): th.replace_with(BeautifulSoup(snippet, "html.parser")) print(soup) 打印: <table border="1" class="dataframe" style="border: 1px solid grey"> <tbody> <tr> <th>Records</th> <th>Worth</th> <td>30</td> <td>is</td> <td>50</td> <td>0</td> <td>good</td> <td></td> </tr> <tr> <!-- this is the code im looking for --> <tr> <th rowspan="14">Words</th> <td style="height: 30px;"></td> <td style="text-align: center; height: 30px;"></td> <td style="height: 30px;"></td> <td style="text-align: right; padding: 7px; min-width: 75px"></td> <td style="height: 30px;"></td> <td style="height: 30px;"></td> <td style="height: 30px;"></td> </tr> <!-- --> <th>Worth</th> <td>30</td> <td>=</td> <td>40</td> <td>0</td> <td>bad</td> <td></td> </tr> <tr> <th>Worth</th> <td>is</td> <td>44</td> <td>400.0</td> <td></td> <td>bad</td> <td></td> </tr> </tbody> </table>

回答 1 投票 0

尝试解析 rss feed 的描述标签时没有得到任何结果

所以我正在访问这个 RSS feed 如您所见,有一个描述标签。当我解析提要时,它不会返回任何描述标签 这是我收到的错误消息 属性错误:'

回答 1 投票 0

使用2captcha解决Hcaptcha自动化网站搜索(Python)

我正在尝试通过Python 自动化网络搜索。 该网站位于 hCaptcha 后面,但我使用的是 2captcha 解算器。 尽管我已经复制了网络浏览器的行为,但我仍然被要求解决

回答 1 投票 0

使用 Python 中的网页抓取比较两个在线超市的价格

我正在开发一个程序,使用Python比较两个在线超市的类似产品的价格。我有两个代表每个供应商的产品页面的 URL,我需要提取 和

回答 1 投票 0

网页抓取过程中有些div没有出现

我是网络抓取新手,我尝试从这个网站抓取内容:INFOBANJIR JPS SELANGOR 这是我正在尝试抓取的内容: 在线降雨量数据(毫米) 这是我的代码: 来自 BS4 ...

回答 3 投票 0

检测并显示网页的更改

我正在尝试跟踪几个 URL,以了解它们何时进行更改,例如添加新文章,以及让脚本成为一个持续运行的程序,该程序将打印一条表示某些内容已更改的消息,...

回答 1 投票 0

有没有办法将 NBA 首发阵容与相应的比赛一起排序到不同的表格中?

我怎样才能将同一行和同一列的球队配对在一起 将 pandas 导入为 pd 从 bs4 导入 BeautifulSoup 导入请求 url =“https://www.rotowire.com/

回答 2 投票 0

如何抓取 NBA 首发阵容并创建 Pandas DataFrame?

我在解析 NBA 首发阵容的代码时遇到困难,如果可能的话,希望获得一些帮助。 到目前为止,这是我的代码: 导入请求 从 bs4 导入 BeautifulSoup url = "https://www.

回答 2 投票 0

使用 BeautifulSoup 网络抓取公司名称

我试图从网站上提取公司名称,但无法产生任何结果。我不确定我是否选择了错误的课程或我做错了什么。 网站:https://wineparis-vinexp...

回答 1 投票 0

如何使用 BeautifulSoup4 在嵌套 HTML 中获取 <a> 标签

我想访问href链接。虽然我的 HTML 是如下图所示的嵌套结构 我正在尝试使用 BeautifulSoup4 来做到这一点,但是我是 WebScrapping 的新手。我正在使用的代码是:

回答 1 投票 0

Python + BeautifulSoup:无法从特定网站找到联系页面

我尝试使用Python和BeautifulSoup库从不同的网站找到联系页面。我使用的逻辑是查找包含关键工作“联系人”的不同变体的标签,并且...

回答 1 投票 0

利用 Beautiful Soup 检测并显示网页的更改

我正在尝试跟踪几个 URL,以了解它们何时进行更改,例如添加新文章,以及让脚本成为一个持续运行的程序,该程序将打印一条表示某些内容已更改的消息,...

回答 1 投票 0

DuckDuckGo 结果抓取

我在运行代码时遇到问题,并在 StackOverflow 上找到了完美的解决方案。但是,当我进行必要的更改并运行它时,我没有得到任何输出。 代码: 从 bs4 导入 BeautifulSoup 导入你...

回答 1 投票 0

Python使用bs4提取元素,非常基本的东西我想我不明白

所以我正在使用 Beautiful Soup 尝试使用标签和类从页面中获取元素。这是我的代码: 导入请求 从 bs4 导入 BeautifulSoup # 向网页发送GET请求 网址=...

回答 1 投票 0

Python 抓取代码正在导出空 csv

我正在使用下面的Python代码来抓取这个网站(https://www.eeoc.gov/newsroom/search)。我希望它能够抓取标题所链接的标题、描述、日期和网址。 代码正在创建...

回答 1 投票 0

如何使用 Beautifulsoup 干净地解析出 HTML 列表中的所有项目符号和子项目符号?

我有一个看起来像这样的文档 标头1 该病毒已造成 56 人死亡 全球媒体重点报道了数百只狗的跳跃 一位 Twitter 用户发布了猫的照片 标头2 拜登总统谈论 S...

回答 1 投票 0

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