首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用<a>以特定属性为目标

使用<a>以特定属性为目标
EN

Stack Overflow用户
提问于 2015-11-25 21:45:37
回答 1查看 5.4K关注 0票数 2

我试图抓取一个有这样一个部分的页面:

代码语言:javascript
复制
<a name="id_631"></a>

<hr>

<div class="store-class">
    <div>
        <span><strong>Store City</strong</span>
    </div>

    <div class="store-class-content">
        <p>Event listing</p>
        <p>Event listing2</p>
        <p>Event listing3</p>
    </div>

    <div>
        Stuff about contact info
    </div>
</div>

页面是这样的部分列表,区别它们的唯一方法是通过<a>标记中的name属性。

所以我想我想把目标对准,然后转到next_sibling,得到<hr>,然后再转到下一个兄弟,得到<div class="store-class">部分。我只想要那个div标签上的信息。

不过,我不知道如何针对这个<a>标记来移动两个兄弟姐妹。当我尝试print(soup.find_all('a', {"name":"id_631"}))时,它只会给出标记中的内容,这是没有意义的。

这是我的剧本:

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup

r = requests.get("http://www.tandyleather.com/en/leathercraft-classes")

soup = soup = BeautifulSoup(r.text, 'html.parser')

print(soup.find("a", id="id_631").find_next_sibling("div", class_="store-class"))

但我知道错误是:

代码语言:javascript
复制
Traceback (most recent call last):
File "tandy.py", line 8, in <module>
print(soup.find("a", id="id_631").find_next_sibling("div", class_="store-class"))
AttributeError: 'NoneType' object has no attribute 'find_next_sibling'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 21:46:39

find_next_sibling()到救援:

代码语言:javascript
复制
soup.find("a", attrs={"name": "id_631"}).find_next_sibling("div", class_="store-class")

另外,html.parser必须由lxmlhtml5lib代替。

另请参阅:

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33926946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档