我一直试图从一个使用Python和BeautifulSoup的网站中提取一些数据。我似乎找不到提取div属性内容的方法。
例如,由此:
<div class= "something">
<div class="a" title="b">
<img class="c" height="d" src="e" width="f" alt="g">
</div>
我想提取标题,得到的结果是:
b
我试过用这个:
for all_data in soup.find_all('div', {'class': 'someClass'}):
for headline in all_data.find_all('div', {'class': 'main-
attributes'}):
for rating in headline.find('div', {'class': 'Something'}):
print(rating)
现在,这当然拉出了整个div类。我想要的只是把标题拔出来。另一个问题是,当我试图将整个div类写到一个CSV中时,它要么写一个空白,要么就把整个CSV弄乱了。
我真的很感谢任何帮助。我是Python和编码的初学者,所以如果这个问题不够具体,我很抱歉。
提前谢谢!!干杯
如果要提取类A
元素的title
,可以执行如下操作:
from bs4 import BeautifulSoup
ad= '<div class= "something"> \
<div class="a" title="b"> \
<img class="c" height="d" src="e" width="f" alt="g"> \
</div>'
soup = BeautifulSoup(ad,"lxml").find_all("div", {"class": "a"})
for items in soup:
title=items['title'] #this format is used to fetch attributes of an element
print(title)
>
find()
返回单个元素,而不是列表。所以,您不能这样迭代它:
for rating in headline.find('div', {'class': 'Something'}):
print(rating)
要获得title
属性,您可以简单地在soup对象上使用['title']
,如下所示:
>>> html = '''<div class= "something">
<div class="a" title="b">
<img class="c" height="d" src="e" width="f" alt="g">
</div>'''
>>> soup = BeautifulSoup(html, 'lxml')
>>> soup.find('div', class_='something').div
<div class="a" title="b">
<img alt="g" class="c" height="d" src="e" width="f"/>
</div>
>>> soup.find('div', class_='something').div['title']
'b'
或者,更准确地说,您可以使用
soup.find('div', class_='something').find('div', class_='a')['title']
阅读文档了解更多关于如何获取属性/属性内容的信息。
问题内容: 我试图在网页上的特定“输入”标签中提取单个“值”属性的内容。我使用以下代码: 我收到TypeError:列表索引必须是整数,而不是str 即使从Beautifulsoup文档中我了解到字符串在这里也不应该是一个问题…但是我没有专家,我可能会误解了。 问题答案: 返回所有找到的元素的列表,因此: 是一个列表(可能仅包含一个元素)。根据你的确切要求,你应该执行以下操作: 或使用仅返回一个(
问题内容: 我没有使用python,BeautifulSoup,Selenium等的经验,但是我很想从网站上抓取数据并将其存储为csv文件。我需要的单个数据样本编码如下(一行数据)。 我需要的输出是 我发现这些数据没有ID或类,但仍以通用文本形式出现在网站中。为此,我分别尝试使用BeautifulSoup和Python Selenium,在这两种方法中,我都陷入了无法提取的麻烦,因为我没有看到任何
我有下面的代码来刮一个页面,https://www.hotukdeals.com 由于某种原因,这种方法起作用,在循环中刮取交易的价格一定的次数,然后停止工作。 程序输出: 从输出中可以看到,在前四行之后,属性为空,但元素中有文本。 有人知道这事吗?有什么想法或解决办法吗?
BeautifulSoup尝试(替换最后3行) 这不会输出任何东西--在这个页面上,找到一些标签(divs、spans等)可以工作,但另一些则不行。在本例中,它没有按照预期找到带有game_info的表。
我对使用python有点陌生,我接到了一个任务,需要从表中抓取数据。我也不太懂html。我以前从来没有这样做过,花了几天时间研究各种刮桌子的方法。不幸的是,所有的例子都是一个看起来比我所处理的更简单的网页布局。我尝试了很多不同的方法,但没有一种方法允许我选择所需的表数据。 下面网页底部的“每日水位”选项卡下的表怎么刮? url=https://apps.wrd.state.or.us/apps/g
我正在尝试刮网页,在那里我需要解码整个表到一个数据帧。我正为此使用漂亮的汤。在某些标记中,有一些标记没有任何文本。但这些值会显示在网页上的特定span标记中。 下面的代码对应于该网页, 但是,这个标记中显示的值是。我试着删掉它,但我收到的是空短信。 如何刮这个价值使用美丽的汤。 URL:https://en.tutiempo.net/climate/ws-432950.html 下面给出了我的用于