我不明白为什么我会犯这个错误:
我有一个相当简单的函数:
def scrape_a(url):
r = requests.get(url)
soup = BeautifulSoup(r.content)
news = soup.find_all("div", attrs={"class": "news"})
for links in news:
link = news.find_all("href")
return link
以下是我正在努力搜集的网页结构:
<div class="news">
<a href="www.link.com">
<h2 class="heading">
heading
</h2>
<div class="teaserImg">
<img alt="" border="0" height="124" src="/image">
</div>
<p> text </p>
</a>
</div>
你做错了两件事:
您正在对
news
结果集调用find_all
;可能您打算对links
对象调用它,该结果集中的一个元素。文档中没有
<href ...>
标记,因此使用find_all('href')
搜索不会得到任何结果。只有具有href
属性的标记。您可以将代码更正为:
去做我认为你想做的事。
我会用CSS selector:
如果要返回
href
属性(链接本身)的值,当然还需要提取该值:如果需要链接对象而不是第一个,只需返回链接对象的
news_links
,或者使用列表理解来提取url:相关问题 更多 >
编程相关推荐