抓取网页生成电子书(使用python爬虫实现把《廖雪峰的Python教程》转换成PDF的方法和代码)

优采云 发布时间: 2021-10-07 03:27

  抓取网页生成电子书(使用python爬虫实现把《廖雪峰的Python教程》转换成PDF的方法和代码)

  本文与您分享使用Python crawler将廖雪峰的Python教程转换为PDF的方法和代码。如果你需要它,你可以参考它

  似乎没有比使用python更好的方法来编写爬虫程序。python社区提供了许多让您眼花缭乱的爬虫工具。可以直接使用的各种库可以在几分钟内编写一个爬虫程序。今天,我想写一个爬虫程序,把廖雪峰的Python程序下载到PDF电子书中,供离线阅读

  在编写爬虫程序之前,让我们首先分析网站1的页面结构。页面左侧是教程的目录大纲。每一个URL对应于右边的“@ K7@”,“@ K7@”的标题位于右上方,“@ K7@”的主体部分位于中间。正文内容是我们关注的焦点。我们想要爬升的数据是所有网页的主体部分,下面是用户的评论区。评论区对我们来说是无用的,所以我们可以忽略它

  工具准备

  一旦理解了网站的基本结构,就可以开始准备爬虫程序所依赖的工具包。请求和漂亮的汤是爬虫的两个工件。Reuqests用于网络请求,Beauty soup用于操作HTML数据。有了这两架航天飞机,我们可以快速工作。我们不需要像scratch这样的爬行动物框架。这有点像在小程序中用牛刀杀鸡。此外,由于它是将HTML文件转换为PDF,因此还需要相应的库支持。Wkhtmltopdf是一个非常好的工具。它可以将HTML转换为适合多平台的PDF。Pdfkit是wkhtmltopdf的python包。首先,安装以下依赖项包

  接下来,安装wkhtmltopdfip安装请求

  pip安装美化组

  pip安装pdfkit

  安装wkhtmltopdf

  windows平台直接从wkhtmltopdf官方网站2下载稳定版本进行安装。安装完成后,将程序的执行路径添加到系统环境的$path变量中。否则,如果pdfkit找不到wkhtmltopdf,则会出现错误“找不到wkhtmltopdf可执行文件”。Ubuntu和CentOS可以直接从命令行$sudo apt get install wkhtmltopdf#Ubuntu安装

  $sudo yum intsall wkhtmltopdf#centos

  爬虫实现

  当一切准备就绪时,您可以编写代码,但在编写代码之前,您应该先清理头脑。该程序的目的是在本地保存与所有URL对应的HTML正文,然后使用pdfkit将这些文件转换为PDF文件。让我们把任务分成两部分。首先,在本地保存与URL对应的HTML正文,然后查找所有URL以执行相同的操作

  使用Chrome浏览器查找页面主体部分的标签,然后按F12查找与主体对应的p标签:

  ,这是网页的正文内容。在本地加载整个页面的请求后,可以使用Beauty soup操作HTML的DOM元素来提取正文内容

  具体实现代码如下:use soup.find uuAll函数查找body标记并将body部分的内容保存到a.html文件中。def解析url到html(url):

  response=requests.get(url)

  soup=BeautifulSoup(response.content,“html5lib”)

  body=soup.find uAll(class=“x-wiki-content”)[0]

  html=str(正文)

  以open(“a.html”,“wb”)作为f:

  f、 编写(html)

  第二步是解析页面左侧的所有URL。同样,找到左侧的菜单选项卡

  具体代码实现了逻辑:页面上有两个类属性UK NAV UK NAV side,第二个是真实目录列表。所有URL都被获取,并且在第一步中还编写了URL到HTML的函数。def get_uuURL_uuu列表():

  “”“

  获取所有URL目录的列表

  “”“

  response=requests.get(“”)

  soup=BeautifulSoup(response.content,“html5lib”)

  menu_uTag=soup.find_uuAll(class=“uk nav uk nav side”)[1]

  URL=[]

  对于菜单中的li uTag.find uuAll(“li”):

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线