Python爬虫实战,python爬虫达成教程转换来

美高梅开户网址 1

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

写爬虫如同并未有比用 Python 更适合了,Python
社区提供的爬虫工具多得让你眼花缭乱,种种拿来就足以一贯用的 library
分分钟就足以写出2个爬虫出来,明天就雕刻着写一个爬虫,将廖雪峰的 Python
教程 爬下来做成 PDF 电子书方便我们离线阅读。

起来写爬虫前,我们先来分析一下该网址一的页面结构,网页的左侧是课程的目录大纲,每一种U猎豹CS陆L
对应到左边的1篇小说,右边上方是小说的标题,中间是作品的正文部分,正文内容是大家关切的最主要,大家要爬的数码正是具有网页的正文部分,下方是用户的评论区,评论区对大家不妨用,所以能够忽略它。

美高梅开户网址 2

工具准备

弄精晓了网址的骨干协会后就足以开头准备爬虫所注重的工具包了。requests、beautifulsoup
是爬虫两大神器,reuqests 用于网络请求,beautifusoup 用于操作 html
数据。有了那两把梭子,干起活来利索,scrapy
那样的爬虫框架我们就毫无了,小程序派上它稍微杀鸡用牛刀的趣味。其余,既然是把
html 文件转为 pdf,那么也要有相应的库帮忙, wkhtmltopdf
正是三个老大好的工具,它能够用适用于多平台的 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

爬虫达成

全方位准备稳当后就足以上代码了,不过写代码此前仍然先整理一下思路。程序的目标是要把装有
U锐界L 对应的 html 正文部分保存到本地,然后使用 pdfkit 把这么些文件转换来一个pdf 文件。我们把任务拆分一下,首先是把某一个 U翼虎L 对应的 html
正文保存到地头,然后找到全体的 UEnclaveL 执行同1的操作。

用 Chrome 浏览器找到页面正文部分的竹签,按 F1二 找到正文对应的 div
标签: <div >,该 div 是网页的正文内容。用 requests
把方方面面页面加载到地头后,就能够动用 beautifulsoup 操作 HTML 的 dom 元一向提取正文内容了。

美高梅开户网址 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)

第一步就是把页面左边全体 U纳瓦拉L 解析出来。选拔同样的方法,找到
左边菜单标签 <ul >

美高梅开户网址 4

实际代码实现逻辑:因为页面上有四个uk-nav uk-nav-side的 class
属性,而实在的目录列表是第1个。全部的 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)

Python爬虫实战,python爬虫达成教程转换来。执行 save_pdf 函数,电子书 pdf 文件就生成了,效果图:

美高梅开户网址 5

总结

总共代码量加起来不到50行,可是,且慢,其实上面给出的代码省略了1些细节,比如,怎么着取得小说的标题,正文内容的
img 标签使用的是相对路径,假设要想在 pdf
中平日呈现图片就须求将相对路径改为相对路径,还有保存下来的 html
一时文件都要刨除,这一个细节末叶都位居github上。

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

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

  写爬虫就好像未有比用 Python 更确切了,Python
社区提供的爬虫工具多得让你眼花缭乱,各样拿来就足以一贯用的 library
分分钟就能够写出贰个爬虫出来,明日就雕刻着写二个爬虫,将廖雪峰的 Python
教程 爬下来做成 PDF 电子书方便大家离线阅读。
  
  开始写爬虫前,我们先来分析一下该网址一的页面结构,网页的左手是学科的目录大纲,每种UPRADOL
对应到左边的一篇小说,右边上方是小说的标题,中间是作品的正文部分,正文内容是我们关怀的基本点,大家要爬的数目正是装有网页的正文部分,下方是用户的评论区,评论区对大家无妨用,所以能够忽略它。

  写爬虫就像并未有比用 Python 更方便了,Python
社区提供的爬虫工具多得让您眼花缭乱,各个拿来就足以平素用的 library
分分钟就能够写出1个爬虫出来,后天就雕刻着写2个爬虫,将廖雪峰的 Python
教程 爬下来做成 PDF 电子书方便大家离线阅读。
  
  初叶写爬虫前,大家先来分析一下该网址1的页面结构,网页的左边是学科的目录大纲,每一种UOdysseyL
对应到左边的一篇小说,左侧上方是小说的标题,中间是文章的正文部分,正文内容是我们关怀的重大,大家要爬的数量就是持有网页的正文部分,下方是用户的评论区,评论区对大家无妨用,所以能够忽略它。

 

美高梅开户网址 6

美高梅开户网址 7

人生苦短,小编用Python。那句话我仅仅只是说说而已,Python丰硕的库,意味着Python写代码的功用比别的的编制程序语言高出好几倍。Python的应用领域也专门的广,比如:web开发、爬虫、自动化测试/运转、测试/运营开发、大数额、数据解析、人工智能、机器学习等等。若是您是想要爬取网上数据来说,那必将便是用Python了哟,终归很有力。

  工具准备
  
  弄通晓了网址的基本结构后就可以起来准备爬虫所依靠的工具包了。requests、beautifulsoup
是爬虫两大神器,reuqests 用于互联网请求,beautifusoup 用于操作 html
数据。有了那两把梭子,干起活来利索,scrapy
那样的爬虫框架我们就绝不了,小程序派上它有点杀鸡用牛刀的意趣。其余,既然是把
html 文件转为 pdf,那么也要有照应的库扶助, wkhtmltopdf
就是二个那多少个好的工具,它能够用适用于多平台的 html 到 pdf 的变换,pdfkit
是 wkhtmltopdf 的Python封装包。首先安装好上面包车型客车重视性包,接着安装
wkhtmltopdf

  工具准备
  
  弄精晓了网址的主导构造后就能够开首准备爬虫所依赖的工具包了。requests、beautifulsoup
是爬虫两大神器,reuqests 用于互联网请求,beautifusoup 用于操作 html
数据。有了那两把梭子,干起活来利索,scrapy
这样的爬虫框架大家就不用了,小程序派上它多少杀鸡用牛刀的情趣。别的,既然是把
html 文件转为 pdf,那么也要有相应的库辅助, wkhtmltopdf
正是2个卓殊好的工具,它能够用适用于多平台的 html 到 pdf 的转移,pdfkit
是 wkhtmltopdf 的Python封装包。首先安装好上面包车型客车正视包,接着安装
wkhtmltopdf

倘使你需求三个上佳的学习沟通条件,那么你能够思虑Python学习交换群:548377875;

假使您须求1份系统的求学资料,那么您能够设想Python学习交换群:548377875。

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

上学Python的对象都知道”廖雪峰”,也都会在上头看教程,可是接连用网页看觉得特别劳累,前些天笔者就用Python把”廖雪峰”的学科制作成PDF,那样离线也能得以看了!

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

  安装 wkhtmltopdf
  
  Windows平台直接在 wkhtmltopdf
官网二下载稳定版的进行设置,安装达成现在把该程序的执行路径加入到系统环境
$PATH 变量中,不然 pdfkit 找不到 wkhtmltopdf 就涌出错误 “No wkhtmltopdf
executable found”。Ubuntu 和 CentOS 能够直接用命令行实行安装

美高梅开户网址 8

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

 

  爬虫完毕
  
  一切准备妥贴后就可以上代码了,可是写代码此前如故先收十一下思路。程序的目标是要把具备
U猎豹CS6L 对应的 html 正文部分保存到本地,然后利用 pdfkit 把那么些文件转换来一个pdf 文件。我们把职务拆分一下,首先是把某二个 U途达L 对应的 html
正文物保护存到本地,然后找到全体的 UCR-VL 执行同壹的操作。
  
  用 Chrome 浏览器找到页面正文部分的标签,按 F1二 找到正文对应的 div
标签: <div class=”x-wiki-content”>,该 div 是网页的正文内容。用
requests 把全体页面加载到当地后,就足以行使 beautifulsoup 操作 HTML 的
dom 成分 来提取正文内容了。

  美高梅开户网址 ,爬虫达成
  
  一切准备妥帖后就能够上代码了,然则写代码在此之前照旧先收10一下思路。程序的目标是要把具有
U大切诺基L 对应的 html 正文部分保存到地面,然后利用 pdfkit 把那些文件转换到二个pdf 文件。大家把职务拆分一下,首先是把某一个 UTucsonL 对应的 html
正文物保护存到本地,然后找到全数的 UEscortL 执行同壹的操作。
  
  用 Chrome 浏览器找到页面正文部分的竹签,按 F1二 找到正文对应的 div
标签: <div class=”x-wiki-content”>,该 div 是网页的正文内容。用
requests 把全路页面加载到地方后,就足以使用 beautifulsoup 操作 HTML 的
dom 成分 来提取正文内容了。

后天笔者正是用Python爬虫中最佳常用的多个模块,也是爬虫的两大神器了

美高梅开户网址 9

美高梅开户网址 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样的设置格局。

    第1步正是把页面右侧全部 U大切诺基L 解析出来。选拔相同的不二法门,找到
左边菜单标签 <ul class="uk-nav uk-nav-side">

    第一步正是把页面左边全体 UTiggoL 解析出来。选拔同1的点子,找到
右侧菜单标签 <ul class="uk-nav uk-nav-side">

接下去正是爬虫的主干的流水线了

 

 

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

美高梅开户网址 11

美高梅开户网址 12

简单明了

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

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

美高梅开户网址 13

 
  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

左手的目录也得以用相同的点子找到。

 

 

贯彻源码

美高梅开户网址 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)

效果图

美高梅开户网址 15

 

 

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

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

美高梅开户网址 16

美高梅开户网址 17

 

 

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

  总结
  
  总共代码量加起来不到50行,不过,且慢,其实上边给出的代码省略了一些细节,比如,怎么着获取小说的标题,正文内容的
img 标签使用的是相对路径,假诺要想在 pdf
中平常突显图片就必要将相对路径改为相对路径,还有保存下去的 html
一时文件都要删减,这么些细节末叶都位居github上。
  
  完整代码能够上github下载 ,代码在 Windows 平台亲测有效,欢迎 fork
下载自身创新。github 地址三,GitHub访问不了的同校能够用码云四, 《廖雪峰的
Python 教程》电子书 PDF 文件能够经过关怀本公众号『三个程序员的微站』回复
“pdf” 免费下载阅读。

 
 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图