python3.8
问题1:文件显示创建成功,但是内容为空
问题2:然后试了一下打印列表,但是列表也是空的
想问问怎么办QAQ
问题代码:
def j_eachclass(self,eachclass):
info={}
info['jike_title']=re.search('title="(.?)" alt="',eachclass,re.S).group(1)
info['jike_number']=re.search('style="display: none;"(.?)',eachclass,re.S).group(1)
info['jike_introduce']=re.search('; display: none;"> (.*?)
#整理字典,提取信息,创立文件准备储存
def saveinfo(self,classinfo):
f = open('info.txt','a')
for each in classinfo:
f.writelines('title:'+each['jike_title']+'/n')
f.writelines('time:'+each['jike_time']+'/n')
f.writelines('class level:'+each['jike_classlevel']+'/n')
f.writelines('number:'+each['jike_number']+'/n')
f.writelines('introduction:'+each['jike_introduce']+'/n/n')
f.close()
if name == 'main':
classinfo = []
url=‘’网址‘’
jspider=spider()
all_links = jspider.page_changer(url,20)
for link in all_links:
print('现在开始检索网页:' + link )
html=jspider.source_ji(link)
everyclass=jspider.j_everyclass(html)
for i in everyclass:
info=jspider.j_eachclass(i)
classinfo.append(info)
jspider.saveinfo(classinfo)
列表为空,你在程序中打印一下列表,另外你如果在网页上F12查你的匹配数据和你自己的程序抓是有区别的,因为你抓的数据可能是JS动态渲染出来的,而你在浏览器中可以看到是因为浏览器帮你动态渲染出来了,你要换种代码策略来加载并获取数据了,网上一搜一大堆也不难。
首先列表为空应该是你正则表达式没匹配到数据,所以没有数据写入文件