分类 python 下的文章

python基础教程第四章 列表和字典


#列表
list=['小明','18','1.70']
#一个列表需要用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用 
英文逗号隔开

#从列表提取单个元素
#这就涉及到一个新的知识点:偏移量。列表中的各个元素,好比教室里的某排学生那样,是有序地排列 
的,也就是说,每个元素都有自己的位置编号(即偏移量)。
list  =  ['小明','18','1.70']
#从上图可得:1.偏移量是从0开始的,而非我们习惯的从1开始;2.列表名后加带偏移量的中括号,就能取 
到相 
应位置的元素。
#我们可以通过偏移量来对列表进行索引(可理解为搜索定位),读取我们所需的元素。
students = ['小明','小红','小刚']
print(students[0])  

#从列表提取多个元素
#一个提醒:下列:左右两边的数字指的是列表中元素的偏移量,记住偏移量(索引)始终是从0开始的。
list2 = [5,6,7,8,9]
print(list2[:])
# 打印出[5,6,7,8,9]
print(list2[2:])
# 打印出[7,8.9]
print(list2[:2])
# 打印出[5,6]
print(list2[1:3])
#打印出[6,7]
print(list2[2:4])    
#打印出[7,8]

#给列表增加/删除元素
# 请运行以下代码:报错后,可读一下报错信息,然后将第6行注释掉再运行。
list3 = [1,2]
list3.append(3)
print(list3)

#list3.append(4,5)#append后的括号里只能接受一个参数,但却给了两个,也就是4和5。所以,用 
append()给列表增加元素,每次只能增加一个元素
list3.append([4,5])
print(list3)

students = ['小明','小红','小刚','小美']
del students[2]
print(students)


#数据类型:字典
scores = {'小明':95,'小红':90,'小刚':90}
#字典和列表有3个地方是一样的:1.有名称;2.要用=赋值;3.用逗号作为元素间的分隔符
#列表中的元素是自成一体的,而字典的元素是由一个个键值对构成的,用英文冒号连接。如'小明':95, 
其 
中我们把'小明'叫键(key),95叫值(value)。
#这样唯一的键和对应的值形成的组合,我们就叫做【键值对】,上述字典就有3个【键值对】:'小 
明':95、'小红':90、'小刚':90
#如果不想口算,我们可以用len()函数来得出一个列表或者字典的长度(元素个数),括号里放列表或字 
典名称。
#直接运行代码即可
students = ['小明','小红','小刚']
scores = {'小明':95,'小红':90,'小刚':90}
print(len(students))
print(len(scores))
#打印小明成绩
scores = {'小明': 95, '小红': 90, '小刚': 90}
print(scores['小明'])

#给字典增加/删除元素
# 直接运行下面的代码,留意字典以及新的键值对是如何增加的:
album = {'周杰伦':'七里香','王力宏':'心中的日月'}
del album['周杰伦']
print(album)

album['周杰伦'] = '十一月的萧邦' #增加
print(album)
print(album['周杰伦'])
#删除字典里键值对的代码是del语句del 字典名[键],而新增键值对要用到赋值语句字典名[键] = 值
scores = {'小明':95,'小红':90,'小刚':90}

#列表和字典的不同点
#列表中的元素是有自己明确的“位置”的,所以即使看似相同的元素,只要在列表所处的位置不同,它们就 
是两个不同的列表
#字典相比起来就显得随和很多,调动顺序也不影响。因为列表中的数据是有序排列的,而字典中的数据是 
随机排列的。
students1 = ['小明','小红','小刚']
students2 = ['小刚','小明','小红']
print(students1 == students2)  #False

scores1 = {'小明':95,'小红':90,'小刚':100}
scores2 = {'小刚':100,'小明':95,'小红':90}
print(scores1 == scores2)  #True

#在列表和字典中,如果要修改元素,都可用赋值语句来完成
list1 = ['小明','小红','小刚','小美']
list1[1] = '小蓝'
print(list1)

dict1 = {'小明':'男'}
dict1['小明'] = '女'
print(dict1)   

#多级嵌套的列表嵌套列表  取出小红
students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
print(students[1][3])

#字典嵌套字典。
scores = {
    '第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},
    '第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}
    }
print(scores['第二组']['小芳'])

#列表和字典相互嵌套的情况
# 最外层是大括号,所以是字典嵌套列表,先找到字典的键对应的列表,再判断列表中要取出元素的偏移 
量
students = {
    '第一组':['小明','小红','小刚','小美'],
    '第二组':['小强','小兰','小伟','小芳']
    }
print(students['第一组'][3])
#取出'第一组'对应列表偏移量为3的元素,即'小美'

# 最外层是中括号,所以是列表嵌套字典,先判断字典是列表的第几个元素,再找出要取出的值相对应的 
键
scores = [
    {'小明':95,'小红':90,'小刚':100,'小美':85},
    {'小强':99,'小兰':89,'小伟':93,'小芳':88}
    ]
print(scores[1]['小强'])
#先定位到列表偏移量为1的元素,即第二个字典,再取出字典里键为'小强'对应的值,即99。

#我们知道了列表和字典的不同:列表的基本单位是元素,而字典里是键值对。所以,两者提取数据的方式 
也不同。
#你可以通过头两个练习来验证自己已经掌握了。
#而在第三道练习,你会学会提取元组里的数据
#取出love
list1 = [{'嫉妒':'envy'},{'恨':'hatred'},{'爱':'love'}]
print(list1[2]['爱'])

dict1 = {1:['cake','scone','puff'],2:['London','Bristol','Bath'],3: 
['love','hatred','envy']}
print(dict1[3][0])

#元组(tuple)元组和表格很相似,不过,它是用小括号来包的
tuple1 = ('A','B')
list2 = [('A','B'),('C','D'),('E','F')]

print(tuple1[0])
print(list2[1][1])

# 从代码里,也可看出:1.元组内数据的提取也是用偏移量;2.元组也支持互相嵌套。
#元组的写法是把数据放在小括号()中,它的用法和列表用法类似,主要区别在于列表中的元素可以随时修 
改,但元组中的元素不可更改。


#练习要求
#在未来世界里,一个新建的童话镇吸引了不少人入住。
#不过,在人群里隐藏着一只狼,会威胁大家的安全。
#童话镇的镇长希望你能找到它,并揭发其身份。
#用程序语言就是说:列表中有个字符串是“狼”,将其打印出来吧。
ownee = [
    {'海底王国':['小美人鱼''海之王''小美人鱼的祖母''五位姐姐'],'上层世界':['王子','邻国公 
主']},'丑小鸭','坚定的锡兵','睡美人','青蛙王子',
[{'主角':'小红帽','配角1':'外婆','配角2':'猎人'},{'反面角色':'狼'}]
]
print(ownee[5][1]['反面角色'])

python基础教程第三章 input()函数的使用


#input()函数的使用
input('请铲屎官输入宠物的名字:')
#input()函数是输入函数。就上面例子来讲,它需要你输入针对括号内'请铲屎官输入你宠物的名字:'的 
答案。

#input()函数结果的赋值
name = input('请铲屎官输入宠物的名字:')
print('I Love '+name +'!')
#将input()函数的执行结果(收集的信息)赋值给变量name
choice = input('请输入您的选择:')
#变量赋值
if choice == '1':
#条件判断:条件1
    print('霍格沃茨欢迎您的到来。')
    #条件1的结果
else:
#条件判断:其他条件
    print('您可是被梅林选中的孩子,我们不接受这个选项。')
    #其他条件的结果

#input()函数的数据类型
#对于input()函数来说,不管我们输入的回答是什么,不管你输入的是整数1234,还是字符串我爱摩卡, 
input()函数的输入值(搜集到的回答),永远会被强制性地转换为字符串类型。Python3固定规则

#input()函数结果的强制转换
#input()函数的输入值在某些情况下,是可以变为整数的
#choice = int(input('请输入您的选择:'))
#将输入值强制转换为整数,并赋值给变量choice
age = int(input('你多大了呀?'))
#将输入的岁数(字符串),强制转换为整数
if age > 20:
#当年龄(整数)大于20(整数)时
print('在我心里你永远是个宝宝啊')
#打印if条件下的结果
else:
#当年龄(整数)小于20(整数)时
    print('你果然是个真·宝宝!')
    #打印else条件下的结果

#例子
#哈利·波特在对角巷购买宠物时犯难了,他不知道该给自己的猫头鹰起什么名字。现在请你帮助哈利·波 
特,为他的猫头鹰起一个名字。
name=input('请给它取个名字:')
print('哈利波特的猫头鹰叫'+name)

#游戏规则如下:
#如果罗恩一天吃超过10个巧克力蛙,罗恩要给哈利100块;
#如果罗恩一天吃小于等于10个的巧克力蛙,哈利就给罗恩100块。  

#题目要求:
#请你写出一段代码:
#当随机输入罗恩一天吃的巧克力蛙数量时,可以判断出这天,是罗恩给哈利钱,还是哈利给罗恩钱,并打 
印出来。
luoen = input('今天吃了多少巧克力:')
if int(luoen) > 10:
    print('罗恩要给哈利壹佰块')
else:
    print('哈利就给罗恩壹佰快')


#注意:以下背景与题目要求相关
#小精灵:您好,欢迎古灵阁,请问您需要帮助吗?需要or不需要?
#你:需要
#小精灵:请问您需要什么帮助呢?1 存取款;2 货币兑换;3 咨询
#你:2
#小精灵:金加隆和人民币的兑换率为1:51.3,即一金加隆=51.3人民币
#小精灵:请问您需要兑换多少金加隆呢?
#(你说了一个数字N)#
# 小精灵:好的,我知道了,您需要兑换(你说的数字N)金加隆。
#小精灵:那么,您需要付给我(你说的数字N*51.3)人民币。  

#注1:如果选择不需要帮助,小精灵会礼貌地说'好的,再见。'
#注2:  如果选择帮助【1 存取款】,小精灵会推荐你去存取款窗口;如果选择帮助【3 咨询】,小精灵会 
推荐你去咨询窗口。  
name = input('您好,欢迎古灵阁,请问您需要帮助吗?天猫精灵将为你服务,请回答需要or不需要?')
if name == '需要':
    name1 = input('请问您需要什么帮助呢?请输入对应的数字:1 存取款;2 货币兑换;3 咨询')
    if name1 == '2':
        print('金加隆和人民币的兑换率为1:51.3,即一金加隆=51.3人民币')
        name2 = input('请问您需要兑换多少金加隆呢?')
        print('好的,我知道了,您需要兑换'+name2+'金加隆。')
        name3 = int(name2)*int(51.3)
        print('那么,您需要付给我'+str(name3)+'人民币。 ')
    elif name1 == '1':
        print('小精灵推荐你去存取款窗口')
    elif name == '3':
        print('小精灵推荐你去咨询窗口')
elif name == '不需要':
    print('好的,再见。')

python基础教程第二章 条件判断与条件嵌套


#条件判断
#单向判断:if
stonenumber=6
#为宝石数量赋值

if stonenumber>=6:
    #条件:如果你拥有的宝石数量大于等于6个
    print('你拥有了毁灭宇宙的力量')
#结果:显示‘你拥有了毁灭宇宙的力量’的结果

#首先,在计算机的沟通语言中,空格的学名叫缩进,比如我们写文章都要空两个格,这就叫首行缩进
#对于Python而言,冒号和缩进是一种语法。它会帮助Python区分代码之间的层次,理解条件执行的逻辑及 
先后顺序。
#并且,在if条件语言中,缩进不需要我们手动按空格键。当你用英文输入法打:后按回车

#双向判断:if…else…
if xxxx:
    #条件
    print(xxxx)  #做点什么
else:
    #当if条件不满足时
    print(xxxx)     #做点其他的什么


stonenumber=3

if stonenumber>=6:
    print('你拥有了毁灭宇宙的力量')
else:  
    #试试看让else缩进个2空格,看会发生什么。
    print('带着卡魔拉去沃弥尔星寻找灵魂宝石')

for i in range(10):
    if i == 11:
        print('找到结果')
        break
else:
    print('没有找到结果')
#由于if缩进,成为了for循环的“小弟”。所以else和for的内部条件if无关,只和它的平级条件for循环有 
关。
#

#多向判断:if…elif…else…
stonenumber=5
#为宝石数量赋值

if stonenumber>=6:
    #条件:如果你拥有的宝石数量大于等于6个
    print('你拥有了毁灭宇宙的力量')
    #结果:显示‘就拥有了毁灭宇宙的力量’的结果
elif 3<stonenumber<=5:
    #条件:如果想让宝石数量停留在4至5个
    print('红女巫需要亲手毁掉幻视额头上的心灵宝石')
else:
    #条件:当赋值不满足if和elif条件时,执行else下的命令,宝石数量在3个以下
    print('需要惊奇队长逆转未来')
    #结果:显示‘需要惊奇队长逆转未来’的结果  

#if嵌套
#if嵌套的应用场景,简单来讲就是:在基础条件满足的情况下,再在基础条件底下增加额外的条件判断。
historyscore=26

if historyscore>=60:
    print('你已经及格')
    if historyscore>=80:
        print('你很优秀')
    else:
        print('你只是一般般')
else:
    print('不及格')
    if historyscore<30:
        print('学渣')
    else:
        print('还能抢救一下')
print('程序结束'

#例子
#题目要求:
#请你写出一段代码,在一颗宝石都没偷回来的赋值下,进行条件判断,并产生对应的结果:  

#1.如果偷回的宝石数是4颗及以上,输出结果获得了打败灭霸的力量,反杀稳了
#2.如果偷回的宝石数是1-3颗,输出结果可以全员出动,殊死一搏
#3.如果偷回的宝石数是0颗,输出结果没办法了,只能尝试呼叫惊奇队长
stonenumber=0

if stonenumber>=4:
    print('获得了打败灭霸的力量,反杀稳了')

elif 1<=stonenumber<=3:
   print('可以全员出动,殊死一搏')

else:
  print('没办法了,只能尝试呼叫惊奇队长')


#题目要求:
#请你写出一段代码,判断美国队长的工资水平,代码需要满足如下条件:
#1.如果月工资小于等于500美元,显示“欢迎进入史塔克穷人帮前三名”
# 1.1如果月工资在100-500美元之间,显示“请找弗瑞队长加薪”
#  1.2如果月工资小于等于100美元,显示“恭喜您荣获“美元队长”称号!”
#2.如果月工资在500-1000美元之间(含1000美元),打印“祝贺您至少可以温饱了。”
#3.其他情况下,如果工资大于1000美元,打印“经济危机都难不倒您!”
#  3.1如果工资在1000-20000美元(含20000美元)之间,打印“您快比钢铁侠有钱了!”
#  3.2如果月工资大于20000美元,打印“您是不是来自于瓦坎达国?”
#4.不管赋值改变后输出结果如何,都需固定打印结果“程序结束”
gongzi=80
if gongzi <= 500:
    print('欢迎加入史塔克穷人帮')
    if gongzi <= 100:
        print('恭喜您荣获"美元队长"称号')
    else:
        print('请找佛瑞队长加薪')
elif gongzi <= 1000:
    print('祝贺您至少可以温饱了')
else:
    print('经济危机都难不倒您')
    if gongzi <= 20000:
        print('您快比钢铁侠有钱了')
    else:
        print('您是不是来自于瓦坎达国')
print('程序结束')

python基础教程第一章 数据类型和转换


#数据类型
#字符串 #字符串英文string,简写str 字符串类型必须有引号的辅助
name='千寻' #name变量
print("Let's play")
print('''我愿意留在汤婆婆的澡堂里工作两年,
第一年在锅炉房和锅炉爷爷一起烧锅炉水,
第二年在澡堂给客人搓背,
如果我违背工作内容的话,
将在这个世界变成一头猪。
''')
print(type(name)) #type 类型

#整数
#整数英文为integer,简写做int
#以下三个数据【'hello panda'】、【108】、【'108'】 类型 {字符串,整数,字符串}
print(123)
name = 777
print(name)
print((60-4)*2-55/5)

#浮点数
#浮点数的英文名是float,与整数(int)和字符串(str)不同,整数是不带小数点的数字
print(0.55+0.3)

#数据拼接
#数据拼接的方法可简单了,就是利用数据拼接符号【+】,将需要拼接的变量连在一起就行了
hero = '亚瑟' 
enemy = '敌方'
action = '团灭'
gain = '获得'
achieve = 'ACE称号'
print(hero+action+enemy+gain+achieve)

#type()函数就会立即将它的类型查询出来
print(type(name)) #type 类型

#数据转换
#负责转换数据类型的函数一共有3种:str()、int()和float()
#str()函数能将数据转换成其字符串类型,不管这个数据是中文、数字、标点还是火星文,只要放到括号 
里。这个数据就能摇身一变,成为字符串类型。
hero = '亚瑟' 
enemy = '敌方'
action = '秒杀'
gain = '获得'
number = 5
achieve = 'Penta Kill'
#整数转换字符串类型
print(hero+action+str(number)+enemy+gain+achieve)
#借用引号的帮助转换成字符串
print(hero+action+'5'+enemy+gain+achieve)

#数据转换为整数类型的方法也很简单,就是int()函数
#不过对于int()函数的使用,大家要注意一点:只有符合整数规范的字符串类数据,才能被int()强制转换
bug = '666'
hair = '0'
print(int(bug)+int(hair))

#浮点float()函数 
height = 183.5
weight = 79
age = '30'

print(float(height))
print(float(weight))
print(float(age))

word = '3.8'
number = 1
sentence = '人工智障说:3.8+1等于'
print(float(word)+number)

#习题
slogan = '脸黑怪我咯'
number = '7.8'
unit = '张'
sentence = '蓝票一个SSR都没有'
print(slogan+str(int(float(number)))+unit+sentence)

BeautifulSoup


 BeautifulSoup是什么

2019-01-10-15-21-54.png
requests库帮我们搞定了爬虫第0步——获取数据;BeautifulSoup解析和提取网页中的数据
由于BeautifulSoup不是Python标准库,需要单独安装它,我们的学习系统已经安装好了。如果你是在自己的电脑上运行,
需要在终端输入一行代码运行:pip install BeautifulSoup4。(Mac电脑需要输入pip3 install BeautifulSoup4)

d2g 01-2019325115528.png

在括号中,要输入两个参数,第0个参数是要被解析的文本,注意了,它必须必须必须是字符串。
括号中的第1个参数用来标识解析器,我们要用的是一个Python内置库:html.parser。(它不是唯 
一 的解析器,但是比较简单的)
import requests
from bs4 import BeautifulSoup
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler- 
html/spider-men5.0.html') 
soup = BeautifulSoup( res.text,'html.parser') #把网页解析为BeautifulSoup对象
print(type(soup)) #查看soup的类型
print(soup) # 打印soup

提取数据
我们仍然使用BeautifulSoup来提取数据。
这一步,又可以分为两部分知识:find()与find_all(),以及Tag对象 
find()与find_all()是BeautifulSoup对象的两个方法,它们可以匹配html的标签和属性,把BeautifulSoup对象里符合要 
求的数据都提取出来。它俩的用法基本是一样的,区别在于,find()只提取首个满足要求的数据,而find_all()提取出的是 
所有满足要求的数据
import requests
from bs4 import BeautifulSoup
url = 'https://localprod.pandateacher.com/python-manuscript/crawler-html/spder-men0.0.html'
res = requests.get (url)
print(res.status_code)
soup = BeautifulSoup(res.text,'html.parser')
item = soup.find('div') #使用find()方法提取首个<div>元素,并放到变量item里。
print(type(item)) #打印item的数据类型
print(item)       #打印item 

import requests
from bs4 import BeautifulSoup
url = 'https://localprod.pandateacher.com/python-manuscript/crawler-html/spder-men0.0.html'
res = requests.get (url)
print(res.status_code)
soup = BeautifulSoup(res.text,'html.parser')
items = soup.find_all('div') #用find_all()把所有符合要求的数据提取出来,并放在变量items里
print(type(items)) #打印items的数据类型
print(items)       #打印items

import requests # 调用requests库
from bs4 import BeautifulSoup # 调用BeautifulSoup库
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/spider- 
men5.0.html') # 返回一个response对象,赋值给res
html = res.text# 把res的内容以字符串的形式返回
soup = BeautifulSoup( html,'html.parser') # 把网页解析为BeautifulSoup对象
items = soup.find_all(class_='books') # 通过定位标签和属性提取我们想要的数据
for item in items:
print('想找的数据都包含在这里了:\n',item) # 打印item
print(type(item))
除了我们拿到的数据之外;运行结果的数据类型,又是三个<class 'bs4.element.Tag'>,用find()提取出来的数据类型和 
刚才一样,还是Tag对象。接下来要做的,就是把Tag对象中的文本内容提出来。
这时,可以用到Tag对象的另外两种属性——Tag.text,和Tag['属性名']。
我们用Tag.text提出Tag对象中的文字,用Tag['href']提取出URL

import requests # 调用requests库
from bs4 import BeautifulSoup # 调用BeautifulSoup库
res =requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/spider- 
men5.0.html')
# 返回一个response对象,赋值给res
html=res.text
# 把res解析为字符串
soup = BeautifulSoup( html,'html.parser')
# 把网页解析为BeautifulSoup对象
items = soup.find_all(class_='books')   # 通过匹配属性class='books'提取出我们想要的元素
for item in items:                      # 遍历列表items
    kind = item.find('h2')               # 在列表中的每个元素里,匹配标签<h2>提取出数据
    title = item.find(class_='title')     #  在列表中的每个元素里,匹配属性class_='title'提取出数据
    brief = item.find(class_='info')      # 在列表中的每个元素里,匹配属性class_='info'提取出数据
    print(kind.text,'\n',title.text,'\n',title['href'],'\n',brief.text) # 打印书籍的类型、名字、链接和简 
介的文字

crawler-l2-12-2-2019111.png

习题:
爬取的是博客【人人都是蜘蛛侠】中,《未来已来(四)——Python学习进阶图谱》的所有文章评论,并且打印。
文章URL:
https://wordpress-edu-3autumn.localprod.oc.forchange.cn/all-about-the-future_04/
import requests # 调用requests库
from bs4 import BeautifulSoup # 调用BeautifulSoup库
url_destnation = 'https://wordpress-edu-3autumn.localprod.oc.forchange.cn/all-about-the-future_04/'
# 把网址复制给变量destnation_url
res_comment = requests.get (url_destnation) # 返回一个response对象,赋值给destnation
bs_comment = BeautifulSoup(res_comment.text,'html.parser') # 把网页解析为BeautifulSoup对象
list_comments = bs_comment.find_all('div',class_= 'comment-content') #通过匹配属性提取出我们想要的元素
for tag_comment in list_comments: # 遍历列表,取出列表中的每一个值
print(tag_comment.text) # 打印评论的文本

题目要求:你需要爬取的是网上书店Books to Scrape中所有书的分类类型,并且将它们打印出来。
它的位置就在网页的左侧,如:Travel,Mystery,Historical Fiction…等。
import requests
from bs4 import BeautifulSoup
re = requests.get('http://books.toscrape.com/')
ab = BeautifulSoup(re.text,'html.parser')
ac = ab.find('ul',class_="nav").find('ul').find_all('li')
for i in ac:
    fl = i.find('a')
    print(fl.text.strip())

 题目要求:你需要爬取的是网上书店Books to ScrapeTravel这类书中,所有书的书名、评分、价格三种信息,并且打印 
提取到的信息。
2019-01-18-19-45-03
网页URL:
http://books.toscrape.com/catalogue/category/books/travel_2/index.html
在此,提取书名和评分都有一定难度,想不到怎么做?点击步骤旁边的问号查看提示。
import requests
from bs4 import BeautifulSoup
res = requests.get('http://books.toscrape.com/catalogue/category/books/travel_2/index.html')
bs = BeautifulSoup(res.text,'html.parser')
bk = bs.find_all(class_='product_pod')
for i in bk:
    ac=i.find('h3').find('a')
    pf=i.find('p',class_="star-rating")
    jq=i.find('p',class_="price_color")
    print('书名:'+ac['title'])  # 这里用到了tag['属性名']提取属性值
    print('评分:'+pf['class'][1])  # 同样是用属性名提取属性值
# 用list_star['class']提取出来之后是一个由两个值组成的列表,如:"['star-rating', 'Two']",我们最终要提取的 
是这个列表的第1个值:"Two"。
# 为什么是列表呢?因为这里的class属性有两个值。其实,在这个过程中,我们是使用class属性的第一个值提取出了第二 
个值。
print('价格:'+jq.text+'\n'+'-------------'+'\n')

题目要求:你需要爬取的是博客人人都是蜘蛛侠,首页的四篇文章信息,并且打印提取到的信息。
提取每篇文章的:
文章标题
发布时间
文章链接
网页URL:
https://spidermen.cn/
import requests
from bs4 import BeautifulSoup
re = requests.get('https://spidermen.cn/')
ab = BeautifulSoup(re.text,'html.parser')
ac = ab.find_all(class_='entry-header')
for i in ac:
    rq = i.find(class_='entry-meta').find('a').find(class_='updated')
    bt = i.find('h2').find('a')
    print('时间:'+rq.text.strip())
    print('标题:'+bt.text.strip())
    print('链接: '+bt['href'],end='\n'+'------'+'\n')