为了账号安全,请及时绑定邮箱和手机立即绑定

不写“获取Lacie的链接”那段代码的话会报错

如果不写“获取Lacie的链接”那段代码,直接写正则表达式那段的话,会报错,显示‘ResultSet’没有.name属性,是不是因为find_all返回的结果是一个链接集合? 而“获取Lacie的链接”那段实际上先把link_node定义成了一个链接?

正在回答

4 回答

# coding:utf8


from bs4 import BeautifulSoup

import re


html_doc = """

<html><head><title>The Dormouse's story</title></head>

<body>

<p class="title"><b>The Dormouse's story</b></p>


<p class="story">Once upon a time there were three little sisters; and their names were

<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,

<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and

<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;

and they lived at the bottom of a well.</p>


<p class="story">...</p>

"""



soup = BeautifulSoup(html_doc, 'html.parser', from_encoding="utf-8")


print u'获取所有链接'

links = soup.find_all('a')

for link in links:

    print link.name,link['href'],link.get_text()

    

print '只获取Lacie的链接'

link_node = soup.find('a', href='http://example.com/lacie')    

print link_node.name,link_node['href'],link_node.get_text()



print '正则匹配'

link_node = soup.find('a', href=re.compile(r"ill"))    

print link_node.name,link_node['href'],link_node.get_text()




0 回复 有任何疑惑可以回复我~

应该铁定是输错了,比如href啥的,不要输成herf,血泪史。。

1 回复 有任何疑惑可以回复我~

集合没有的name属性   可以提取出来 list[0].name 试试  

要么就是输错了

0 回复 有任何疑惑可以回复我~

测试不会出现你说的情况

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python开发简单爬虫
  • 参与学习       227670    人
  • 解答问题       1219    个

本教程带您解开python爬虫这门神奇技术的面纱

进入课程

不写“获取Lacie的链接”那段代码的话会报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信