使用python采集脚本之家电子书资源并自动下载到本地的实例脚本

  

jb51上面的资源还比较全,就准备用python来实现自动采集信息,与下载啦。

  

Python具有丰富和强大的库,使用urllib、再保险等就可以轻松开发出一个网络信息采集器!

  

下面,是我写的一个实例脚本,用来采集某技术网站的特定栏目的所有电子书资源,并下载到本地保存!

  

软件运行截图如下:

  

使用python采集脚本之家电子书资源并自动下载到本地的实例脚本

  

在脚本运行时期,不但会打印出信息到壳窗口,还会保存日志到txt文件,记录采集到的页面地址,书籍的名称,大小,服务器本地下载地址以及百度网盘的下载地址!

  

实例采集并下载的python栏目电子书资源:
  

        # - * -编码:utf - 8 - *   进口再保险   进口urllib2   进口urllib   导入系统   进口操作系统   重载(系统)   sys.setdefaultencoding (“utf - 8”)   def getHtml (url):   请求=urllib2.Request (url)   页面=urllib2.urlopen(请求)   htmlcontent=page.read ()   #解决中文乱码问题   htmlcontent=htmlcontent.decode (“gbk”、“忽略”).encode (“use utf8”、“忽略”)   返回htmlcontent   def报告统计,blockSize totalSize):   %=int(计数* blockSize * 100/totalSize)   sys.stdout。写(r % d % % % % +“完成”)   sys.stdout.flush ()   def getBookInfo (url):   htmlcontent=getHtml (url);   #打印”htmlcontent=" htmlcontent;#您应该看到输出的html   # & lt; h2类=" h2user "祝辞crifan   regex_title=' & lt;硫化氢+ & # 63;itemprop=皀ame”祝辞(& # 63;术中;title> + & # 63;) & lt;/h2>”;   title=re.search (regex_title htmlcontent);   如果(标题):   title=title.group(“标题”);   打印”书籍名字:“、标题;   file_object.write(“书籍名字:‘+标题+ ' r ');   # & lt; li>书籍大小:& lt; itemprop跨度=拔募笮 钡脑?7.2 mb & lt;/li>   文件大?re.search (' & lt;跨越+ & # 63;itemprop=拔募笮 弊4?& # 63;术中;filesize> + & # 63;) & lt;/span>”, htmlcontent);   如果(文件大小):   文件大?filesize.group(“文件大小”);   打印”文件大小:“,文件大小;   file_object.write(“文件大小:“+文件大小+ ' r ');   # & lt; div类=" picthumb "祝辞& lt; a href=" https://www.yisu.com//img.jbzj.com/do/uploads/litimg/151210/1A9262GO2.jpg " target="平等"   bookimg=re.search (' & lt; div + & # 63;类=皃icthumb祝辞& lt; a href=" https://www.yisu.com/zixun/(P 。+ ?)“rel==捌降取薄巴獠縩ofollow”目标,htmlcontent);   如果(bookimg):   bookimg=bookimg.group (“bookimg”);   打印”封面图片:“,bookimg;   file_object.write(“封面图片:“+ bookimg + ' r ');   # & lt; li> & lt; a href=" http://xz6.jb51.net: 81/201512/书/JavaWeb100 (jb51.net) . rar”目标=捌降取痹诳嵩浦泄缧畔略? lt;/a> & lt;/li>   downurl1=re.search (' & lt; li> & lt; a href=" https://www.yisu.com/zixun/(P 。+ ?)“rel==捌降取薄巴獠縩ofollow”目标在酷云中国电信下载& lt;/a> & lt;/li>”, htmlcontent);   如果(downurl1):   downurl1=downurl1.group (“downurl1”);   打印”下载地址1:”downurl1;   file_object.write(“下载地址1:' + downurl1 + ' r ');   sys.stdout。写(“rFetching”+名称+“…n”)   标题=标题。替换(“,”);   标题=标题。替换(‘/?”);   saveFile='/用户/superl/桌面/pythonbook/' +标题+ . rar的;   如果os.path.exists (saveFile):   打印”该文件已经下载了!”;   其他:   urllib。urlretrieve (downurl1 saveFile reporthook=报告);   sys.stdout。写(“rDownload完整,保存为% s“% (saveFile) +“神经网络”)   sys.stdout.flush ()   file_object.write(“文件下载成功! r ');   其他:   打印”下载地址1不存在”;   file_error.write (url + ' r ');   file_error.write(标题+”下载地址1不存在!文件没有自动下载! r”);   file_error.write (' r ');   # & lt; li> & lt; a href=" http://pan.baidu.com/s/1pKfVNwJ " rel==捌降取薄巴獠縩ofollow”目标的在百度网盘下载2 & lt;/a> & lt;/li>   downurl2=re.search (' & lt;/a> & lt;/li> & lt; li> & lt; a href=" https://www.yisu.com/zixun/(P 。+ ?)“rel==捌降取薄巴獠縩ofollow”目标的在百度网盘下载2 & lt;/a> & lt;/li>”, htmlcontent);   如果(downurl2):   downurl2=downurl2.group (“downurl2”);   打印”下载地址2:”downurl2;   file_object.write(“下载地址2:' + downurl2 + ' r ');   其他:   # file_error.write (url + ' r ');   打印”下载地址2不存在”;   file_error.write(标题+”下载地址2不存在r”);   file_error.write (' r ');   file_object.write (' r ');   打印“n”;   def getBooksUrl (url):   htmlcontent=getHtml (url);   # & lt; ul类=" cur-cat-list "祝辞& lt; a href=" https://www.yisu.com/books/438381.html " rel=巴獠縩ofollow”class=叭橥贰? lt;/ul> & lt;/div> & lt; !——结束#内容比;   url=re.findall (' & lt; a href=" https://www.yisu.com/zixun/(P

使用python采集脚本之家电子书资源并自动下载到本地的实例脚本