from bs4 import BeautifulSoup
import requests
url = "https://www.brightscope.com/ratings"
headers = {'User-Agent':'Mozilla/5.0'}
page = requests.get(url)
soup = BeautifulSoup(page.text, "html.parser")
data = soup.find_all('li',{"class":"more-data"})+soup.findAll('li', {"class":"more-data topten"})
for item in data:
print(item('a'))
我想只打印hrefs,但我似乎无法解决这个问题。我查看了不同的视频但无法获得。我究竟做错了什么?我知道上面的代码是打印" a"的内容。标签,但我只需要href' s。
答案 0 :(得分:2)
您需要使用字典式访问元素的属性:
[a['href'] for a in item('a')]
另外,作为旁注,您可以改进查找li
元素的方式,而不是:
data = soup.find_all('li',{"class":"more-data"})+soup.findAll('li', {"class":"more-data topten"})
for item in data:
print(item('a'))
你可以这样做:
links = soup.select("li.more-data a")
for a in links:
print(a["href"])
其中li.more-data a
是一个CSS selector,它会匹配a
个li
个元素内的所有more-data
个元素。