爬虫:保存linux网页教程为pdf格式
来源:互联网 发布:百度 春节 大数据 编辑:程序博客网 时间:2024/06/03 19:38
安装wkhtmltopdf,在官网下载或在windows终端输入 pip install wkhtmltopdf
添加到系统变量Path后重启电脑
使用 pip install pdfkit 安装pdfkit
使用wkhtmltopdf将http://www.linuxprobe.com/ 中的linux网页教程为pdf格式 存在问题:
- 编码问题: 如果将保存的pdf文件命名为中文则出现 names = unicode(name, encoding=’utf-8’) TypeError: decoding Unicode is not supported 错误
#-*-coding:utf-8-*-import pdfkitimport requestsimport sysimport osimport urllib2import rereload(sys)sys.setdefaultencoding('utf-8')class Spider: def get_pdf(self, urls, name): if os.path.exists('E:/linux_pdf'): print 'already exists!!!' else: os.mkdir('E:/linux_pdf') os.chdir('E:/linux_pdf/') print 'url = ' + urls # names = unicode(name, encoding='utf-8') # print names pdfkit.from_url(urls, name + '.pdf') print 'hahhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' def get_main_page(self,url): header = {'User-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'} html = requests.get(url) url_field = re.findall('<ul class="dropdown-menu">(.*?)</ul>', html.text, re.S)[0] url_lists = re.findall('class="menu-item.*?<a href="(.*?)">', url_field, re.S) print url_lists print '-'*100 name_lists = re.findall('<a href=".*?">(.*?)</a></li>',url_field, re.S) if len(url_lists) == len(name_lists): for i in range(1, len(url_lists)+1): self.get_pdf(url_lists[i-1], str(i)) else: print "crawl lists is wrong!!!"if __name__ == '__main__': url = 'http://www.linuxprobe.com/' spider = Spider() spider.get_main_page(url)
0 0
- 爬虫:保存linux网页教程为pdf格式
- 网页保存为pdf
- Python爬虫:抓取Python教程保存为PDF电子书
- 直接利用Chrome保存网页为PDF格式的方法
- HtmlToPdf保存网页成pdf教程
- 将网页内容保存为pdf
- 一键保存网页为PDF
- 用谷歌浏览器保存整个网页为pdf
- Python抓取网页并保存为PDF
- 如何把网页保存为PDF
- Chrome保存网页为mhtml格式
- wooyun知识库爬虫(自动整理保存为pdf)
- 网页保存为PDF或图片的方法
- 利用 Chrome 的打印功能将网页保存为 PDF
- 工具分享: 一键保存网页为PDF文件
- 如何利用Chrome浏览器将网页保存为pdf文件
- 谷歌浏览器将网页保存为图片或者pdf
- 不使用服务器扩展将amCharts保存为PDF格式
- C++——求值顺序例子
- poj 1328 Radar Installation(区间合并)
- JSONObject、JSONArray区别
- ubutnu 16.04 下 gedit和vim的中文乱码问题
- jquery 回车事件
- 爬虫:保存linux网页教程为pdf格式
- 第七届蓝桥杯煤球数目
- JUnit4 中@AfterClass @BeforeClass @after @before的区别对比
- SpringMVC搭建
- Android基础:最易懂的Activity启动模式详解
- Qt中的Post方法
- tensorflow学习(4):保存模型Saver.save()的参数命名机制以及restore并创建手写字体识别引擎
- LeetCode 3. Longest Substring Without Repeating Characters
- 详解VB中连接access数据库的几种方法