先上效果图:
全部代码:
import requests
from bs4 import BeautifulSoup
req = requests.get('https://www.geekdigging.com/')
html = req.text
bf = BeautifulSoup(html,'lxml') #用lxml解析器格式化文本
texts = bf.find_all('h2',class_='item-title') #提取所有<h2 class="item-title">标签的内容
a_bf = BeautifulSoup(str(texts),'lxml') #用lxml解析器格式化文本
a = a_bf.find_all('a') #在上面数据的基础上再提取所有<a>标签的内容
list_a=[]
for aa in a:
list_a.append(((aa.string).replace(' ','') ,aa.get('href'))) #提取标题并去除空格+提取网址,追加到列表
list_a.sort() #对列表进行排序.升序
for aaa in list_a:
print(aaa[0],aaa[1])
以下分别用图片说明代码实现的功能
实现代码:
bf = BeautifulSoup(html,'lxml') #用lxml解析器格式化文本
texts = bf.find_all('h2',class_='item-title') #提取所有<h2 class="item-title">标签的内容
------------------------------------------------------------------------------------------------------------------------------------
实现代码:
a_bf = BeautifulSoup(str(texts),'lxml') #用lxml解析器格式化文本
a = a_bf.find_all('a') #在上面数据的基础上再提取所有<a>标签的内容
------------------------------------------------------------------------------------------------------------------------------------
从上图看到存在许多空格,并不是想要的格式,我要除掉所有空格。
list_a=[]
for aa in a:
list_a.append(((aa.string).replace(' ','') ,aa.get('href'))) #提取标题并去除空格+提取网址,追加到列表
到了这里,格式是我想的,但排序还是不满意,原谅我是处女座,继续优化
list_a.sort() #对列表进行排序.升序
for aaa in list_a:
print(aaa[0],aaa[1])
最后的效果,看起来舒服好多了