在上一篇的代码中进行了小的修改,增加了将数据写进文件夹的操作。
代码:
# @Time : 2020/4/10 23:35
# @Author : w
# @File : 天善储存文件夹.py
# @Software: PyCharm
import re
import requests
for i in range(0,10):
urls="https://edu.hellobi.com/course/"+str(i+1)
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}
response=requests.get(urls,headers=headers)
#正则表达式来匹配 (.*?)括号里是需要的,返回的部分
title_pa='<li class="active">(.*?)</li>'
teacher_pa='class="lec-name">(.*?)<'
price_pa = 'm-price.*?</sub>(.*?)</span>'
title=re.compile(title_pa, re.S).findall(response.text)
if(len(title)==0):
continue
teacher=re.compile(teacher_pa, re.S).findall(response.text)
if(len(teacher)==0):
teacher='lost'
price=re.compile(price_pa, re.S).findall(response.text)
if(len(price)==0):
price='free'
#将三个数据放进列表,对文件进行操作
list1=[title, teacher, price]
file=open('explore.txt','a',encoding='utf-8')
#list包含数字,不能直接转化成字符串
file.write('\n'.join('%s' % id for id in list1))
file.write('\n'+'='*50+'\n')
file.close()
#代码截至4.10测试无误