金沙注册送58 1

python爬虫达成教程转换到 PDF 电子书,python爬虫

写爬虫仿佛并未有比用 Python 更方便了,Python
社区提供的爬虫工具多得让你眼花缭乱,种种拿来就足以平素用的 library
分分钟就足以写出多少个爬虫出来,明日就雕刻着写三个爬虫,将廖雪峰的 Python
教程 爬下来做成 PDF 电子书方便大家离线阅读。

伊始写爬虫前,大家先来分析一下该网址一的页面结构,网页的左手是学科的目录大纲,每个U昂科拉L
对应到左边的壹篇文章,左侧上方是文章的标题,中间是小说的正文部分,正文内容是我们关切的最首要,大家要爬的数码正是颇具网页的正文部分,下方是用户的评论区,评论区对大家无妨用,所以能够忽略它。

金沙注册送58 2

工具准备

弄领悟了网址的中坚构造后就可以起来准备爬虫所正视的工具包了。requests、beautifulsoup
是爬虫两大神器,reuqests 用于互连网请求,beautifusoup 用于操作 html
数据。有了那两把梭子,干起活来利索,scrapy
那样的爬虫框架我们就无须了,小程序派上它有点杀鸡用牛刀的意趣。此外,既然是把
html 文件转为 pdf,那么也要有对应的库匡助, wkhtmltopdf
正是1个可怜好的工具,它能够用适用于多平台的 html 到 pdf 的变换,pdfkit
是 wkhtmltopdf 的Python封装包。首先安装好上边包车型客车依赖包,

紧接着安装 wkhtmltopdf

pip install requests
pip install beautifulsoup
pip install pdfkit

安装 wkhtmltopdf

Windows平台直接在 wkhtmltopdf
官网二下载稳定版的进展设置,安装到位之后把该程序的推行路径参与到系统环境
$PATH 变量中,不然 pdfkit 找不到 wkhtmltopdf 就应运而生错误 “No wkhtmltopdf
executable found”。Ubuntu 和 CentOS 能够平素用命令行实行设置

$ sudo apt-get install wkhtmltopdf # ubuntu
$ sudo yum intsall wkhtmltopdf   # centos

爬虫达成

整套准备妥帖后就足以上代码了,不过写代码以前依旧先整理一下思路。程序的指标是要把拥有
UTiggoL 对应的 html 正文部分保存到当地,然后采纳 pdfkit 把那一个文件转换到一个pdf 文件。大家把职务拆分一下,首先是把某三个 U奥迪Q7L 对应的 html
正文保存到地头,然后找到全体的 UGL450L 执行同样的操作。

用 Chrome 浏览器找到页面正文部分的价签,按 F12 找到正文对应的 div
标签: <div >,该 div 是网页的正文内容。用 requests
把任何页面加载到本地后,就能够运用 beautifulsoup 操作 HTML 的 dom 元一直提取正文内容了。

金沙注册送58 3
切切实实的完成代码如下:用 soup.find_all
函数找到正文标签,然后把正文部分的内容保留到 a.html 文件中。

def parse_url_to_html(url):
  response = requests.get(url)
  soup = BeautifulSoup(response.content, "html5lib")
  body = soup.find_all(class_="x-wiki-content")[0]
  html = str(body)
  with open("a.html", 'wb') as f:
    f.write(html)

什么用Python把网址上边的文书档案教程制作成PDF,Python爬虫实战。其次步正是把页面左侧全部 U汉兰达L 解析出来。采纳同样的方式,找到
右侧菜单标签 <ul >

金沙注册送58 4

现实代码达成逻辑:因为页面上有三个uk-nav uk-nav-side的 class
属性,而真正的目录列表是第三个。全部的 url 获取了,url 转 html
的函数在首先步也写好了。

def get_url_list():
  """
  获取所有URL目录列表
  """
  response = requests.get("http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000")
  soup = BeautifulSoup(response.content, "html5lib")
  menu_tag = soup.find_all(class_="uk-nav uk-nav-side")[1]
  urls = []
  for li in menu_tag.find_all("li"):
    url = "http://www.liaoxuefeng.com" + li.a.get('href')
    urls.append(url)
  return urls

最后一步就是把 html 转换来pdf文件了。转换到 pdf 文件至极容易,因为
pdfkit 把持有的逻辑都卷入好了,你只必要调用函数 pdfkit.from_file

def save_pdf(htmls):
  """
  把所有html文件转换成pdf文件
  """
  options = {
    'page-size': 'Letter',
    'encoding': "UTF-8",
    'custom-header': [
      ('Accept-Encoding', 'gzip')
    ]
  }
  pdfkit.from_file(htmls, file_name, options=options)

执行 save_pdf 函数,电子书 pdf 文件就生成了,效果图:

金沙注册送58 5

总结

合计代码量加起来不到50行,可是,且慢,其实上边给出的代码省略了某个细节,比如,如何获取小说的标题,正文内容的
img 标签使用的是相对路径,借使要想在 pdf
中符合规律显示图片就须要将绝对路径改为相对路径,还有保存下来的 html
一时文件都要删减,那一个细节末叶都坐落github上。

全体代码可以上github下载 ,代码在 Windows 平台亲测有效,欢迎 fork
下载自身创新。github 地址三,GitHub访问不了的同窗能够用码云四, 《廖雪峰的
Python 教程》电子书 PDF 文件能够因此关心本公众号『三个程序员的微站』回复
“pdf” 免费下载阅读。

PDF 电子书,python爬虫
写爬虫就像是从未比用 Python 更方便了,Python
社区提供的爬虫工具多得让你眼花缭乱,各个拿…

  写爬虫仿佛从未比用 Python 更贴切了,Python
社区提供的爬虫工具多得让您眼花缭乱,各样拿来就足以直接用的 library
分秒钟就能够写出一个爬虫出来,今日就雕刻着写二个爬虫,将廖雪峰的 Python
教程 爬下来做成 PDF 电子书方便大家离线阅读。
  
  伊始写爬虫前,我们先来分析一下该网址1的页面结构,网页的左侧是课程的目录大纲,每种U科雷傲L
对应到左侧的一篇小说,左边上方是文章的标题,中间是小说的正文部分,正文内容是大家关怀的首要,大家要爬的多寡就是装有网页的正文部分,下方是用户的评论区,评论区对大家不要紧用,所以能够忽略它。

  写爬虫就像从未比用 Python 更适用了,Python
社区提供的爬虫工具多得让您眼花缭乱,种种拿来就能够直接用的 library
分分钟就能够写出一个爬虫出来,前几日就雕刻着写3个爬虫,将廖雪峰的 Python
教程 爬下来做成 PDF 电子书方便大家离线阅读。
  
  开首写爬虫前,我们先来分析一下该网址一的页面结构,网页的左边是课程的目录大纲,每种UKugaL
对应到左侧的壹篇小说,左边上方是文章的标题,中间是小说的正文部分,正文内容是我们关心的主要性,大家要爬的数额正是独具网页的正文部分,下方是用户的评论区,评论区对我们不妨用,所以能够忽略它。

 

金沙注册送58 6

金沙注册送58 7

人生苦短,作者用Python。那句话我仅仅只是说说而已,Python丰盛的库,意味着Python写代码的功用比任何的编程语言高出好好多倍。Python的应用领域也特意的广,比如:web开发、爬虫、自动化测试/运营、测试/运转开发、大数额、数据解析、人工智能、机器学习等等。假使您是想要爬取网上多少以来,那一定正是用Python了呀,终归很强大。

  工具准备
  
  弄明白了网址的为主组织后就能够起首准备爬虫所注重的工具包了。requests、beautifulsoup
是爬虫两大神器,reuqests 用于互连网请求,beautifusoup 用于操作 html
数据。有了这两把梭子,干起活来利索,scrapy
这样的爬虫框架大家就无须了,小程序派上它有点杀鸡用牛刀的趣味。其余,既然是把
html 文件转为 pdf,那么也要有相应的库帮助, wkhtmltopdf
正是二个10分好的工具,它能够用适用于多平台的 html 到 pdf 的变换,pdfkit
是 wkhtmltopdf 的Python封装包。首先安装好上面包车型大巴信赖包,接着安装
wkhtmltopdf

  工具准备
  
  弄通晓了网址的核心构造后就足以起来准备爬虫所依赖的工具包了。requests、beautifulsoup
是爬虫两大神器,reuqests 用于网络请求,beautifusoup 用于操作 html
数据。有了这两把梭子,干起活来利索,scrapy
那样的爬虫框架大家就绝不了,小程序派上它稍微杀鸡用牛刀的情致。其它,既然是把
html 文件转为 pdf,那么也要有照应的库协理, wkhtmltopdf
就是3个那多少个好的工具,它能够用适用于多平台的 html 到 pdf 的更换,pdfkit
是 wkhtmltopdf 的Python封装包。首先安装好上面的依赖性包,接着安装
wkhtmltopdf

比方你需求二个出色的学习调换条件,那么您能够设想Python学习交换群:548377875;

只要您须要一份系统的学习资料,那么你能够思虑Python学习调换群:54837787伍。

pip install requests
pip install beautifulsoup
pip install pdfkit
pip install requests
pip install beautifulsoup
pip install pdfkit

读书Python的爱人都清楚”廖雪峰”,也都会在上头看教程,可是接连用网页看觉得特别辛苦,前些天作者就用Python把”廖雪峰”的学科制作成PDF,那样离线也能得以看了!

  安装 wkhtmltopdf
  
  Windows平台直接在 wkhtmltopdf
官网二下载稳定版的拓展设置,安装到位之后把该程序的推行路径参预到系统环境
$PATH 变量中,不然 pdfkit 找不到 wkhtmltopdf 就出现谬误 “No wkhtmltopdf
executable found”。Ubuntu 和 CentOS 能够间接用命令行实行设置

  安装 wkhtmltopdf
  
  Windows平台直接在 wkhtmltopdf
官网二下载稳定版的拓展安装,安装到位之后把该程序的执行路径插足到系统环境
$PATH 变量中,否则 pdfkit 找不到 wkhtmltopdf 就涌出谬误 “No wkhtmltopdf
executable found”。Ubuntu 和 CentOS 能够间接用命令行实行安装

金沙注册送58 8

$ sudo apt-get install wkhtmltopdf  # ubuntu
$ sudo yum intsall wkhtmltopdf      # centos
$ sudo apt-get install wkhtmltopdf  # ubuntu
$ sudo yum intsall wkhtmltopdf      # centos

 

  爬虫达成
  
  一切准备妥善后就可以上代码了,然则写代码在此之前仍旧先收十一下思路。程序的目标是要把具有
U路虎极光L 对应的 html 正文部分保存到地头,然后利用 pdfkit 把这么些文件转换到三个pdf 文件。大家把职分拆分一下,首先是把某三个 ULacrosseL 对应的 html
正文物保护存到地方,然后找到全体的 UENCOREL 执行同壹的操作。
  
  用 Chrome 浏览器找到页面正文部分的竹签,按 F1贰 找到正文对应的 div
标签: <div class=”x-wiki-content”>,该 div 是网页的正文内容。用
requests 把全副页面加载到地方后,就足以行使 beautifulsoup 操作 HTML 的
dom 元素 来提取正文内容了。

  爬虫达成
  
  壹切准备稳妥后就足以上代码了,然而写代码此前依旧先整理一下思路。程序的目标是要把装有
U宝马X5L 对应的 html 正文部分保存到地头,然后选拔 pdfkit 把那一个文件转换到二个pdf 文件。大家把职务拆分一下,首先是把某一个 U猎豹CS陆L 对应的 html
正文物保护存到地点,然后找到全数的 U昂CoraL 执行同样的操作。
  
  用 Chrome 浏览器找到页面正文部分的标签,按 F1二 找到正文对应的 div
标签: <div class=”x-wiki-content”>,该 div 是网页的正文内容。用
requests 把一切页面加载到地点后,就足以行使 beautifulsoup 操作 HTML 的
dom 成分 来提取正文内容了。

前些天笔者正是用Python爬虫中不过常用的八个模块,也是爬虫的两大神器了

金沙注册送58 9

金沙注册送58 10

Requests和beautifulsoup

    具体的兑现代码如下:用 soup.find_all
函数找到正文标签,然后把正文部分的内容保留到 a.html 文件中。

    具体的完毕代码如下:用 soup.find_all
函数找到正文标签,然后把正文部分的内容保留到 a.html 文件中。

第一大家须要做的就是先安装那七个模块

 

 

  • Pip install requests
  • Pip install beautifulsoup
def parse_url_to_html(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.content, "html5lib")
    body = soup.find_all(class_="x-wiki-content")[0]
    html = str(body)
    with open("a.html", 'wb') as f:
        f.write(html)
def parse_url_to_html(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.content, "html5lib")
    body = soup.find_all(class_="x-wiki-content")[0]
    html = str(body)
    with open("a.html", 'wb') as f:
        f.write(html)

既然要把网页的html转换到PDF那么也要索要pdfkit这么些模块的,和地方1样的设置方式。

    第3步就是把页面左边全数 U奥迪Q5L 解析出来。选用相同的方法,找到
左侧菜单标签 <ul class="uk-nav uk-nav-side">

    第一步正是把页面左边全体 USportageL 解析出来。采纳同一的主意,找到
左边菜单标签 <ul class="uk-nav uk-nav-side">

接下去正是爬虫的骨干的流程了

 

 

先在浏览器里面利用开发者工具(F1二)找到正文的div标签,然后用requests获取整个页面数据,在用beautifulsoup提取正文内容。

金沙注册送58 11

金沙注册送58 12

不难明了

    具体代码完结逻辑:因为页面上有多个uk-nav uk-nav-side的 class
属性,而真的的目录列表是第贰个。全数的 url 获取了,url 转 html
的函数在首先步也写好了。

    具体代码完成逻辑:因为页面上有八个uk-nav uk-nav-side的 class
属性,而实在的目录列表是第三个。全数的 url 获取了,url 转 html
的函数在率先步也写好了。

金沙注册送58 13

金沙注册送58 , 
  Python三-廖雪峰带标签完整版pdf下载:

 
  Python三-廖雪峰带标签完整版pdf下载:

 

def get_url_list():
    """
    获取所有URL目录列表
    """
    response = requests.get("http://www.gooln.com/document/161286.html")
    soup = BeautifulSoup(response.content, "html5lib")
    menu_tag = soup.find_all(class_="uk-nav uk-nav-side")[1]
    urls = []
    for li in menu_tag.find_all("li"):
        url = "http://www.gooln.com/" + li.a.get('href')
        urls.append(url)
    return urls
def get_url_list():
    """
    获取所有URL目录列表
    """
    response = requests.get("http://www.gooln.com/document/161286.html")
    soup = BeautifulSoup(response.content, "html5lib")
    menu_tag = soup.find_all(class_="uk-nav uk-nav-side")[1]
    urls = []
    for li in menu_tag.find_all("li"):
        url = "http://www.gooln.com/" + li.a.get('href')
        urls.append(url)
    return urls

左侧的目录也能够用相同的点子找到。

 

 

完毕源码

金沙注册送58 14

 

 最后一步就是把 html 转换成pdf文件了。转换成 pdf 文件非常简单,因为 pdfkit 把所有的逻辑都封装好了,你只需要调用函数 pdfkit.from_file

def save_pdf(htmls):
    """
    把所有html文件转换成pdf文件
    """
    options = {
        'page-size': 'Letter',
        'encoding': "UTF-8",
        'custom-header': [
            ('Accept-Encoding', 'gzip')
        ]
    }
    pdfkit.from_file(htmls, file_name, options=options)
 最后一步就是把 html 转换成pdf文件了。转换成 pdf 文件非常简单,因为 pdfkit 把所有的逻辑都封装好了,你只需要调用函数 pdfkit.from_file

def save_pdf(htmls):
    """
    把所有html文件转换成pdf文件
    """
    options = {
        'page-size': 'Letter',
        'encoding': "UTF-8",
        'custom-header': [
            ('Accept-Encoding', 'gzip')
        ]
    }
    pdfkit.from_file(htmls, file_name, options=options)

效果图

金沙注册送58 15

 

 

    执行 save_pdf 函数,电子书 pdf 文件就生成了,效果图:

    执行 save_pdf 函数,电子书 pdf 文件就生成了,效果图:

金沙注册送58 16

金沙注册送58 17

 

 

  总结
  
  总共代码量加起来不到50行,可是,且慢,其实上边给出的代码省略了有的细节,比如,如何取得小说的标题,正文内容的
img 标签使用的是相对路径,即使要想在 pdf
中符合规律突显图片就供给将相对路径改为相对路径,还有保存下来的 html
权且文件都要刨除,这个细节末叶都置身github上。
  
  完整代码能够上github下载 ,代码在 Windows 平台亲测有效,欢迎 fork
下载自个儿立异。github 地址三,GitHub访问不了的同班能够用码云四, 《廖雪峰的
Python 教程》电子书 PDF 文件能够通过关切本公众号『三个程序员的微站』回复
“pdf” 免费下载阅读。

  总结
  
  总共代码量加起来不到50行,不过,且慢,其实下面给出的代码省略了有个别细节,比如,如何取得小说的标题,正文内容的
img 标签使用的是相对路径,倘诺要想在 pdf
中平常展现图片就供给将相对路径改为相对路径,还有保存下来的 html
权且文件都要去除,这个细节末叶都坐落github上。
  
  完整代码能够上github下载 ,代码在 Windows 平台亲测有效,欢迎 fork
下载自个儿创新。github 地址叁,GitHub访问不了的同桌能够用码云四, 《廖雪峰的
Python 教程》电子书 PDF 文件能够通过关怀本公众号『1个程序员的微站』回复
“pdf” 免费下载阅读。

 
 

 

 

相关文章

网站地图xml地图