我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

写爬虫好像没有比用它更好的办法了,社区提供那么多爬虫工具让你眼花缭乱,直接用就可以,分分钟写一个爬虫,今天就想着写一个爬虫把廖雪峰的教程爬出来,做成PDF电子书,方便大家离线阅读。

在开始写爬虫之前我们先来分析一下网站的页面结构1.网页左侧是教程的目录大纲,每个URL对应右侧的一篇文章,右上方是文章的标题,中间是文章的正文,正文的内容才是我们的重点,我们要爬取的数据是所有网页的正文,下方是用户的评论区,这个对我们没什么用处,可以忽略。

工具准备

搞清楚了网站的基本结构之后,就可以开始准备爬虫所依赖的工具包了。,是爬虫的两大利器,用于网络请求,用于操作HTML数据。有了这两个工具,工作就可以高效的完成了。我们不需要这样的爬虫框架,在小程序中使用的话,有点鸡肋了。另外,既然是把HTML文件转PDF,那肯定也要有相应的库支持。是一款非常不错的工具,可以用于多平台的HTML转PDF转换,是一款打包好的工具。首先安装以下依赖包,

然后安装

pip install requests
pip install beautifulsoup
pip install pdfkit

安装

2. 直接从官网下载平台稳定版并安装,安装完成后将程序的执行路径添加到系统环境$PATH变量中,否则找不到会出现“No found”的错误,也可以直接使用命令行安装

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

爬虫实现

一切准备就绪后,就可以开始写代码了,不过在写代码之前,先整理一下思路。程序的目的是将所有 URL 对应的 HTML 主体保存到本地计算机,然后利用这些文件将其转换成 PDF 文件。我们来分工一下,先将某个 URL 对应的 HTML 主体保存到本地计算机,然后找出所有 URL 执行同样的操作。

使用浏览器找到页面body的标签,按F12找到body对应的div标签:

中,div是网页的主体内容,在本地加载整个页面后,可以利用HTML的DOM元素提取出主要内容。

具体实现代码如下:利用soup.函数找到body标签,然后将body部分的内容保存到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)

第二步,解析出页面左侧所有的URL,用同样的方法找到左侧的菜单标签。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/4637.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线