Python爬取网页转为PDF

本文讲述了使用Python爬取Android官方手册并转换为PDF的过程。首先介绍了爬虫的起因,然后详细阐述了全篇实现思路,包括网页分析、Requests库和Beautiful Soup库的使用。在配置部分提到了Ubuntu环境下PyCharm的运行和wkhtmltopdf的安装。通过网页分析和标签查找,实现了正文、标题和导航条网址的提取,并将内容转为PDF。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

爬虫的起因

官方文档或手册虽然可以查阅,但是如果变成纸质版的岂不是更容易翻阅与记忆。如果简单的复制粘贴,不知道何时能够完成。于是便开始想着将Android的官方手册爬下来。

全篇的实现思路

  1. 分析网页
  2. 学会使用BeautifulSoup库
  3. 爬取并导出

参考资料:
* 把廖雪峰的教程转换为PDF电子书
* Requests文档
* Beautiful Soup文档

配置

在Ubuntu下使用Pycharm运行成功
转PDF需要下载wkhtmltopdf

具体过程

网页分析

这样一个网页https://developer.android.com/training/basics/supporting-devices/screens.html,要做的是获取该网页的正文和标题,以及左边导航条的所有网址
如下所示:
0423
接下来的工作就是找到这些标签喽…

关于Requests的使用

详细参考文档,这里只是简单的使用Requests获取html以及使用代理翻墙(网站无法直接访问,需要VPN)

由于本文所涉及的内容需要爬取网站的数据,因此需要遵守相关法律法规,不得进行非法爬取,否则后果自负。 本文提供的代码仅供学习参考,请勿用于非法用途。 以下是一个简单的爬虫代码,用于在百度搜索用户输入的关键词,并将搜索结果的第一个页面转为PDF格式保存在桌面。 首先,需要安装selenium和pdfkit两个Python库,可以使用以下命令进行安装: ``` pip install selenium pip install pdfkit ``` 然后,需要下载Chrome浏览器和对应版本的ChromeDriver,并将ChromeDriver的路径添加到系统环境变量中。 接下来,是完整的Python代码: ```python import os import time import pdfkit from selenium import webdriver # 获取用户输入的关键词 keyword = input("请输入要搜索的关键词:") # 启动Chrome浏览器 options = webdriver.ChromeOptions() options.add_argument('--headless') driver = webdriver.Chrome(options=options) # 在百度搜索关键词 driver.get("https://www.baidu.com") input_box = driver.find_element_by_id("kw") input_box.send_keys(keyword) input_box.submit() # 等待搜索结果加载完 time.sleep(2) # 获取搜索结果页面的HTML代码 html = driver.page_source # 将HTML代码保存为PDF文件 pdf_file = os.path.join(os.path.expanduser("~"), "Desktop", f"{keyword}.pdf") pdfkit.from_string(html, pdf_file) # 关闭浏览器 driver.quit() print(f"搜索结果已保存为PDF文件:{pdf_file}") ``` 代码解析: 1. 第1行,导入所需的Python库。 2. 第4行,获取用户输入的关键词。 3. 第7-10行,启动Chrome浏览器,并在无头模式下打开百度页面。 4. 第13-15行,在百度搜索框中输入关键词,并提交搜索请求。 5. 第18行,等待2秒钟,等待搜索结果加载完。 6. 第21行,获取搜索结果页面的HTML代码。 7. 第24-26行,将HTML代码保存为PDF文件,并保存在桌面上。 8. 第29行,关闭浏览器。 9. 第31行,输出保存的PDF文件路径。 运行以上代码,即可在命令行中输入要搜索的关键词,程序会自动在百度中搜索,并将搜索结果的第一个页面保存为PDF文件,保存在桌面上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值