当前位置: 首页 > news >正文

教育机构网站建设加盟融资平台公司

教育机构网站建设加盟,融资平台公司,周口市住房和城乡建设局门户网站,好听大气的公司名字首先声明,本文旨在记录反思,并没有资源,代码也不具有借鉴意义(水平实在不行.某天,水群的时候发现群友发了一个文件,里面是疫情时期springer开放的免费电子书名单,同时还附有下载链接,总共有400多本,这要是一个一个下载不得累死个人,只下载自己感兴趣的书也是一个好主意,但是,我…首先声明,本文旨在记录反思,并没有资源,代码也不具有借鉴意义(水平实在不行.某天,水群的时候发现群友发了一个文件,里面是疫情时期springer开放的免费电子书名单,同时还附有下载链接,总共有400多本,这要是一个一个下载不得累死个人,只下载自己感兴趣的书也是一个好主意,但是,我全都要,它不爽吗?因此就产生了写个爬虫下载电子书的想法,就在今天付诸于实践.最初思路:1.读取excel文件中所有书籍的链接,放在列表类中.2.格式化列表中的链接,然后依次访问链接,提取下载pdf的链接地址.3.将下载pdf的链接地址批量加入到迅雷的下载任务中.理想很丰满,然而实际操作起来……步骤1首先网上bing如何读取excel文件中的数据。然后复制、黏贴、修改……import xlrd def get_bookurl_list(site):book xlrd.open_workbook(site)sheet1 book.sheet()[0] #第一张工作表urls sheet1.col(18) #书籍地址在第18列所以里面也就是18urls urls[1:] #去除第一行的列名 #xlrd库读出来的excel每一个小格都是一个cell类cell.value才是真正的数据return urls然鹅最初的思路在第二步就出现了问题……我虽然可以用requests库访问网址但是我找不到下载pdf的链接在哪里虽然我看得见也点的了笑但是在运行程序的时候我无法指定程序返回那个链接也就是说我无法操作爬虫返回指定的内容。于是我打算直接返回网页内全部链接然后我找到了一个更加傻瓜式的库——requests-html。里面的HTMLSession类有返回网页内所有链接绝对路径的方法。结果还是行不通因为返回来的链接数量超出了我的预料这还不算更加致命的是书记的页面还包含相关书籍的部分章节单从链接上看基本没区别更难顶的是这书居然还能分章节下载。这条路也行不通我的心态发生了一些变化……就在这时我发现pdf下载地址和网页地址高度相似而且具备确定的对应关系。但是问题也很明显就是excel里给的地址是重定向了的真正的地址只有进入网页才能获得。但是总归有办法了问题就在于重定向只要我能获得进入页面的链接就能够得到pdf的下载地址。那么步骤2就变成了……网上bing如何获得重定向后的网页地址。复制黏贴修改……import requests def get_redirect_url(url):# 获得重定向前的链接#url 重定向前的url# 请求头这里我设置了浏览器代理headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36}# 请求网页response requests.get(url,headers)print(response.status_code) # 打印响应的状态码print(response.url) # 打印重定向后的网址# 返回重定向后的网址return response.url好了现在我得到了原本的网站链接经过一些修改就可以加入到迅雷下载了。具体修改放到最后的总函数里这里就先搁置然后找到python调用迅雷加入下载任务的方法然后步骤3bingpython如何使用迅雷下载……复制黏贴修改……from win32com.client import Dispatch #这都是啥玩意儿咱也不知道咱也不敢问 def thunderDownload(urls): #处理后网址的列表thunder Dispatch(ThunderAgent.Agent.1) #这个也可以试试ThunderAgent.Agent64.1,反正我错了笑for i in urls:thunder.AddTask(i)thunder.CommitTasks() 最后的总函数def url_process(urls):list1 []num 0for i in urls:url i.value #i为cell类i.value是真正的数据url get_redirect_url(url) #调用之前的函数获得原本的网页链接。url1 url.replace(book, content/pdf)url1 url1 .pdf #这两行都是对原来网址的处理处理之后就可以加入迅雷下载啦。list1.append(url1)print(urls.index(i))if len(list1)5: #本来预想的是每5个就加入迅雷下载任务没想到我还是太年轻了。thunderDownload(list1)list1 []num 1print(num)至此爬虫程序基本的框架就完成了。然鹅实际运行也是一塌糊涂……动不动就超时以及来自库里的报错……我尝试加了一个监测程序运行时间超时就跳进下一个循环的功能然鹅……程序总是动不动就瘫痪开始请求接口 开始执行 请求完成 请求超时 开始请求接口 开始执行 请求完成 请求超时 开始请求接口 开始执行这是我添加双线程时间控制程序后……所以最后的优化是添加一个功能超时跳入下一个循环。尝试使用eventlet加monkey_patch()方法后报错。于是使用threading库增加返回值import threadingclass MyThread(threading.Thread):def __init__(self, target, args()): #目标函数super(MyThread, self).__init__()self.func targetself.args argsdef run(self):#接收返回值self.result self.func(*self.args)def get_result(self):#线程不结束,返回值为Nonetry:return self.resultexcept Exception:return Nonedef limit_decor(limit_time): #限制真实请求时间的装饰器def functions(func):def run(*params):thre_func MyThread(targetfunc,argsparams)#主线程结束(超出时长),则线程方法结束thre_func.setDaemon(True)thre_func.start()#计算分段沉睡次数(?sleep_num int(limit_time // 1)sleep_nums round(limit_time % 1, 1)#多次短暂沉睡并尝试获取返回值for i in range(sleep_num):time.sleep(1)infor thre_func.get_result()if infor:return infortime.sleep(sleep_nums)#最终返回值if thre_func.get_result():return thre_func.get_result()else:return 请求超时return runreturn functionsdef a1(url):print(开始请求接口)#把逻辑封装成一个函数,使用线程调用a_theadiing MyThread(targeta2,argsurl)a_theadiing.start()a_theadiing.join()a a_theadiing.get_result()print(请求完成)print(a)return a,a_theadiing.resultlimit_decor(300) #将时长限制为5分钟def a2(url):print(开始执行)url get_redirect_url(url)print(执行完成)return url修改后的总函数def url_process(urls):list1 []num 0for i in urls:url i.value#url get_redirect_url(url)url a1([url])[1]if url 请求超时: continueelse:url1 url.replace(book, content/pdf)url1 url1 .pdflist1.append(url1)print(urls.index(i))if len(list1)2:thunderDownload(list1)list1 []num 1print(num)运行还算差强人意主要也受到网络状态的影响。最后请不要吐槽我的代码可读性笑当然也欢迎大佬给出建议。还有就是知乎这个鬼排版找到了个markdown在线编辑器下次试试在那写完再导入知乎。
http://www.pierceye.com/news/651945/

相关文章:

  • 建设网站的知识企业做网站设计的
  • 西安网站排名分析软文营销把什么放在第一位
  • 织梦手机网站模板删除不了宁波网站建设服务商
  • 深圳网站建设最专业网站seo技术
  • 定制网站开发一般多少钱郑州哪家公司做网站好
  • jsp做的网站效果给你一个网站你怎么做的吗
  • 怎样做网站海报wordpress最近怎么又是5.0更新
  • 淡水网站建设哪家便宜设计网页分析
  • 长沙多迪php网站开发培训学校小说榜单首页百度搜索风云榜
  • 门户网站建设计入什么科目网站备案 时间更新
  • 企业建网站租用服务器好还是买一个好wordpress 预订插件
  • 电气建设网站下载的asp网站怎么打开
  • 南阳网站建设icp备手机应用商店免费下载
  • 网站开发测量像素工具网站模板包含哪些内容
  • 南昌网站排名优化费用湖北公众号定制开发
  • 个人主页自助建站凡科网干嘛的
  • 网站后台上传图片不显示品牌营销咨询公司
  • 卖房网站母亲节做什麽活动从传播的角度
  • 永久免费的cad软件seo咨询
  • 网站邮件功能设计理论网站排名软件包年
  • wordpress语言文件编辑专业的企业网站优化公司
  • 正定网站建设制作公司wordpress去掉模板登录
  • 定制开发一个网站多少钱网站开发项目的心得体会
  • 网站被做跳转怎么办个人网站开发软件
  • 湛江网站制作费用南昌建站系统外包
  • 杭州市住房和城乡建设厅网站网页设计个人网站作业
  • 钦州建站哪家好杭州网站建站平台
  • 程序员做笔记的网站在线简历制作系统
  • 有一个网站自己做链接获取朋友位置wordpress504
  • 设计感 网站wordpress企业内网主题