如何进一步细化BeautifulSoup数据(Python3)

时间:2016-07-12 04:23:20

标签: python-3.x beautifulsoup pydev

我希望以某种方式改进汤的数据     1.在sou.findAll("div", class_="span-24")的基础上优化数据     2.然后进一步细化数据,找到所有具有href值的链接。     我正在运行下面给出的代码。

import re
import urllib.request 
from bs4 import BeautifulSoup

url = "http://tribune.com.pk/"

req = urllib.request.Request(url, headers={'User-Agent': 'Chrome/51.0.2704.103'})
htm = urllib.request.urlopen(req).read()
sou = BeautifulSoup(htm,"html.parser")


data = sou.findAll("div", class_="span-24")

for link in data:
    print(link.get('href'))

但它在输出中给出了none。 我做错了吗?

1 个答案:

答案 0 :(得分:1)

href 将位于标记中,您试图将其从实际div中拉出来:

link.a.get('href')) 

但是并非每个 div span-24 都有一个锚标记,您可以使用css选择器来查找div中的锚标记:< / p>

import re
import urllib.request
from bs4 import BeautifulSoup

url = "http://tribune.com.pk/"

req = urllib.request.Request(url, headers={'User-Agent': 'Chrome/51.0.2704.103'})
htm = urllib.request.urlopen(req).read()
soup = BeautifulSoup(htm,"html.parser")


data = soup.select("div.span-24 a[href]")

for a in data:
    print(a["href"])

这实际上为您提供了很多链接,您可能希望更具体地了解您实际想要链接的html部分。