• 关于 jQuery_层级 的搜索结果

回答

<p>出错行为:f.writelines("{:^10}".format(course1[i])+'\n'),</p> 报错内容:下标超出列表的最大值。debug确认一下course1[i]的内容,在调用 savecourse时,第一个参数是title,确认一下title是否为空 <pre> saveuser(uname,uremark,30) savecourse(title,small,100) 这两个语句编写的逻辑不对,后面的值应该是你在函数 getcourse(title,small,html1) getuser(uname,uremark,html) 中获取的值,你自定义为100,但是getcourse获取到内容没有到100,course1和course2中没有足够的值,从而导致循环出错,也就是超出了list的范围(list index out of range)。   <p>顺便再说一下,在getcourse函数中中存在变量不一致的情况,明显是拷贝出错的,仔细检查下吧,还有url1为“”怎么能读到数据呢?初学建议仔细研究例子先。</p>   <pre><code># -*- coding: UTF-8 -*- ''' Created on 2018年6月25日 对慕课网的指定主题界面进行爬取 pyquery库是jQuery的Python实现,可以用于解析HTML网页内容 ''' from pyquery import PyQuery as pq 对指定的url进行下载,获取html内容 def getHtml(url): try: return pq(url=url,encoding='utf-8').html() except Exception,e: print 'error:',e return '' 获取评价列表 def getList(html): 通过class和div标签查找对应文档所在的层级 divs = pq(html)('.evaluation-list').find('div').find('div').find('.content-box') for div in divs.items(): print '用户:',div.find('.username').text(), div.find('.time').text() , '内容:',div.find('.content').text() if name=="main": url = "https://www.imooc.com/course/coursescore/id/159?page=2" html=getHtml(url) getList(html) </code></pre> 我也算个半个小白,针对你提供的界面爬了一下,没看你的代码,觉得你搞复杂了,用pyquery库轻松解决。 楼主见谅,未解答你的问题,只是推荐用更容易的爬虫方案; <p>现在爬网站没人用 scrapy了吗</p> <p>我后面又改了一下,代码如下:</p> import requests import re from bs4 import BeautifulSoup import bs4 import time def getHTMLCourse(url_t):     """获取课程章节的html源代码"""     try:         d = requests.get(url_t, timeout = 100)         d.raise_for_status()         d.encoding = r.apparent_encoding                  return d.text     except:         return ""      def getcourse(title_list,sub_title_list,html_t):     """解析课程的标题和副标题"""     soup = BeautifulSoup(html_t,"html.parser")     div_tags=soup.find_all('div',{'class':"chapter course-wrap"})     i_tags=soup.find_all('i',{'class':"imv2-play_circle type"})     for div in div_tags:         title_list.append(div.h3.string.strip())     for i in i_tags:         sub_title_list.append(list(i.parent.strings)[1][0:100].strip())    def savecourse():     """保存课程标题和副标题"""     with open('course.txt','wt')as fout:         fout.write("标题:\n")         fout.writelines([i+'\n'for i in title_list])         fout.write("副标题:\n")         fout.writelines([i+'\n'for i in sub_title_list])      if __name__=='__main__':     title_list=[]     sub_title_list=[]     url_t='https://www.imooc.com/learn/159'     html_t= getHTMLCourse(url_t)     getcourse(title_list,sub_title_list,html_t)     savecourse() 但是保存的文档里面没有内容,有大佬知道原因吗?  

爱吃鱼的程序员 2020-06-06 20:51:42 0 浏览量 回答数 0

问题

MrDoc一个基于 Python 开发的在线文档系统

问问小秘 2020-05-29 14:42:57 5 浏览量 回答数 1

问题

【javascript学习全家桶】934道javascript热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:22 6202 浏览量 回答数 1

新用户福利专场,云服务器ECS低至96.9元/年

新用户福利专场,云服务器ECS低至96.9元/年
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播