1、首先,必须下载相关的模块,依次使用以下命令安装相关模块即可:

pip install requestspip install html5libpip install beautifulsoup4

其中需注意的是安装requests的话还会下载对应的依赖包,第一条命令执行完将安装下面的包:certifi-2018.10.15 chardet-3.0.4 requests-2.20.0 urllib3-1.24.1,第二条命令执行完将安装下面的包:html5lib-1.0.1 webencodings-0.5.1,第三条需注意如果写为:pip install beautifulsoup 的话,安装会报错,安装完了之后就可以了。

2、导出对应的模块,其中html5lib不需要导入,但是需要安装,不然后面代码运行会报错,其中只需导入两个模块(其中pdfkit的可以看下我上篇文章的介绍,这里不做介绍了,https://blog.csdn.net/u012561176/article/details/83655247),代码如下:

import pdfkit, requests
from bs4 import BeautifulSoup

3、下面附上View底下实现的代码:

def export_pdf(request):config = pdfkit.configuration(wkhtmltopdf='D:\\SoftWare\\wkhtmltopdf\\bin\\wkhtmltopdf.exe')options = {'page-size': 'A3','margin-top': '0.75in','margin-right': '0.75in','margin-bottom': '0.75in','margin-left': '0.75in','encoding': "UTF-8",'no-outline': None,'custom-header': [('Accept-Encoding', 'gzip')],'cookie': [('cookie-name1', 'cookie-value1'),('cookie-name2', 'cookie-value2'),],'outline-depth': 10}url = 'http://127.0.0.1:8000/test/6/'response = requests.get(url)soup = BeautifulSoup(response.content, "html5lib")body = soup.find_all(class_="content")[0]html = str(body)with open("content.html", 'wb') as f:f.write(html.encode(encoding="utf-8"))pdfkit.from_url('content.html', 'test.pdf',configuration=config, options=options)file = open('test.pdf', 'rb')response = FileResponse(file)response['Content-Type'] = 'application/pdf'response['Content-Disposition'] = 'attachment;filename='test.pdf'return response

主要爬取代码为底下几行:

response = requests.get(url)
soup = BeautifulSoup(response.content, "html5lib")
body = soup.find_all(class_="content")[0]
html = str(body)
with open("content.html", 'wb') as f:f.write(html.encode(encoding="utf-8"))

其中通过requests获取url的信息,然后实例化BeautifulSoup对象,接着寻找到界面上第一个出现content的class样式,开始爬取从那个样式开始的内容,然后把这些内容写进去content.html文件中,保存起来,以供后面导出PDF使用。其中需注意写内容进去的时候必须为bytes类型,不能写入str类型,否则会报这种错误:a bytes-like object is required, not 'str'

4、以上内容仅供学习参考,谢谢!

Python使用BeautifulSoup爬取网页中主体部分的内容,并导出为pdf格式相关推荐

  1. beautifulsoup爬取网页中的表格_用 Python 爬取网页

    来自公众号:优达学城Udacity 作者:Kerry Parker 编译:欧剃 作为数据科学家的第一个任务,就是做网页爬取.那时候,我对使用代码从网站上获取数据这项技术完全一无所知,它偏偏又是最有逻辑 ...

  2. beautifulsoup爬取网页中的表格_PYTHON爬取数据储存到excel

    PYTHON爬取数据储存到excel 大家周末好呀,我是滑稽君.前两天上网课时朋友发来消息说需要爬取一些数据,然后储存到excel里.记得我公众号里发过关于爬虫的文章,所以找我帮个忙.于是滑稽君花时间 ...

  3. beautifulsoup爬取网页中的表格_Python爬虫爬取BT之家找电影资源

    一.写在前面 最近看新闻说圣城家园(SCG)倒了,之前BT天堂倒了,暴风影音也不行了,可以说看个电影越来越费力,国内大厂如企鹅和爱奇艺最近也出现一些幺蛾子,虽然目前版权意识虽然越来越强,但是很多资源在 ...

  4. beautifulsoup爬取网页中的表格_python爬取哔哩哔哩网页弹幕内容,并将爬取的内容以五角星的形式显示出来...

    转载:03 爬虫实例-获取网页弹幕内容 思路: 向哔哩哔哩网站发送请求 请求成功后,解析爬取的弹幕内容保存到一个文件中 读取文件并分析弹幕内容中词组或文字出现的频率 将这些词组或文字组成五角星图形 组 ...

  5. python爬取付费隐藏内容_如何用python 爬取网页中隐藏的div内容?

    图片所在的html元素id叫 viewimg ,这个元素是由 view.js 当中的 loadview 函数创建的.该函数吧serverurl跟photosrc这个array里头的元素拼接,并把他设置 ...

  6. python爬取图片-Python爬取网页中的图片(搜狗图片)详解

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 本地下载 我们这里以sogou作为爬取的对象. 首先 ...

  7. [python] 常用正则表达式爬取网页信息及分析HTML标签总结

    这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法.它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~ 当然如果会Selenium基于自动化测试爬 ...

  8. python爬虫之爬取网页基础知识及环境配置概括

    记:python爬虫是爬取网页数据.统计数据必备的知识体系,当我们想统计某个网页的部分数据时,就需要python爬虫进行网络数据的爬取,英文翻译为 spider 爬虫的核心 1.爬取网页:爬取整个网页 ...

  9. [python爬虫] BeautifulSoup爬取+CSV存储贵州农产品数据

    在学习使用正则表达式.BeautifulSoup技术或Selenium技术爬取网络数据过程中,通常会将爬取的数据存储至TXT文件中,前面也讲述过海量数据存储至本地MySQL数据库中,这里主要补充Bea ...

最新文章

  1. pytorch dropout用法
  2. 本文将引导你使用XNA Game Studio Express一步一步地创建一个简单的游戏
  3. 哈密顿路径_检查图形是否为哈密顿量(哈密顿路径)
  4. Php jsondb,JsonDB-PHP
  5. 常用于解决放缩问题的基本不等式及其几何直观证明
  6. 失忆症later和crowd什么关系_约惠七夕把爱给到对的人 费洛蒙香水作用危害,费洛蒙是什么东西,费洛蒙香水有用吗...
  7. python metaclass应用
  8. 软件测试基础 - 系统测试
  9. Web上的支持的图片格式以及它们之间的区别
  10. django-pure-pagination
  11. java方法不写访问权限_【JAVA小白】 问关于访问权限的问题,写接口遇到错误
  12. rosbridge入门教程
  13. windows中docker 安装和使用
  14. 创维linux进入工厂模式,彩色电视机进入工厂模式后数据调乱了,如何恢复默认?-创维电视8TTN工厂模式数据怎么调...
  15. javascript无限请求_SockJS - 重新连接后无限xhr-streaming呼叫
  16. mysql主从复制、读写分离集群/etc/my.cnf配置文件
  17. Qt大屏电子看板系统源码
  18. 星速配资:创业板指强势反弹 白马消费强势反攻
  19. 6大常用数据分析模型详解
  20. 《社群》思维导图读书笔记精华分享

热门文章

  1. 实验5 类的继承、派生和多态(2)
  2. 循环的中断操作(C#基础回顾03)
  3. Learn CMake's Scripting Language in 15 Minutes (ZZ)
  4. 关于java.util.Properties读取中文乱码的正确解决方案(不要再用native2ascii.exe了)...
  5. Javascript开发的HTML5游戏的知识产权保护
  6. 用css及jQuery实现的精美拉下菜单导航条
  7. 机器学习实战4-sklearn训练线性回归模型(鸢尾花iris数据集分类)
  8. mysql主从延迟时间是多少_MySQL主从延迟
  9. 分布式事务seata只支持MySQL_阿里分布式事务框架Seata原理解析
  10. 学习php开发步骤,学习php设计模式 php实现模板方法模式