python爬取pdf_使用python爬取教程生成PDF

工具准备

安装 wkhtmltopdf

在 https://wkhtmltopdf.org/downloads.html下载稳定版的 wkhtmltopdf 进行安装,安装完成之后把该程序的执行路径加入到系统环境 $PATH 变量中

第三方安装

pip install requests

pip install beautifulsoup4

pip install pdfkit

pip install wkhtmltopdf

实现分析

获取html

首先分析界面URL

...

分析页面的html获取爬取的内容

我们要获取到class =article-body,节点下的所有元素

爬取的python示例中编码里面都含有样式,为了按原来的格式展示这里还需要使用一个html模板

代码实现

def get_learn_py_content():

"""

解析URL,获取需要的html内容

:return: htmls

"""

htmls = []

# 渲染的html模板

html_template = """

{content}

"""

for i in range(1,101):

base_url = 'http://www.runoob.com/python/python-exercise-example' + str(i) + '.html'

response = requests.get(base_url)

soup = BeautifulSoup(response.content, 'html.parser')

# 获取文档内容

content = soup.find(class_='article-body')

# 去除图片

while soup.img:

soup.img.decompose()

html = html_template.format(content=content)

html = html.encode("UTF-8")

html_name = str(i)+".html"

with open(html_name, 'wb') as f:

f.write(html)

htmls.append(html_name)

return htmls

将HTML转换成PDF

将Html转换成PDF这里使用的是第三方的包pdfkit,直接将生成的HTML直接传入进来,在传入一个即将要用的PDF的文件名,就完成了

def save_pdf(htmls,name):

"""

把所有html文件转换成pdf文件

"""

# views视图中可以加上options进行页面布局调试

options = {

'page-size': 'Letter',

'encoding': "UTF-8",

'custom-header': [

('Accept-Encoding', 'gzip')

]

}

pdfkit.from_file(htmls, name, options=options)

利用Python爬取上市公司年报并生成可以通过以下步骤实现。 1. 确定爬取的目标:选择要爬取的上市公司年报网站。可以选择一些大型金融机构的官方网站,如上交所、深交所等,或者选择第三方财务数据提供网站。 2. 分析网站结构:通过查看上市公司年报网站的源代码,了解网站的结构和布局,找出年报所在的链接和相关信息的位置。 3. 使用Python爬虫进行网站爬取:利用Python的requests库发送HTTP请求,获取网页内容。通过解析网页内容,提取出年报的链接和相关信息。使用正则表达式或者BeautifulSoup等库来解析网页。 4. 下载年报文件:获取到年报的链接后,使用Python下载器下载年报文件,并保存到本地。 5. 数据处理和生成:根据年报的文件格式(如PDF、Word、Excel),选择相应的Python库进行文档解析。可以使用PyPDF2、python-docx、openpyxl等库来处理不同的文件格式。 6. 生成报告或可视化:根据需求,对年报中的数据进行处理和分析,并生成报告或可视化结果。可以使用Python的各种数据处理和可视化库,如Pandas、Matplotlib、Seaborn等。 7. 结果保存:将分析和处理后的数据、报告或可视化结果保存到本地或者数据库中。 需要注意的是,爬取上市公司年报需要遵守相关法律法规和网站的使用规定,需确保数据的正当获取和使用。此外,爬取网站时需要注意网络请求频率,避免给对方服务器带来过大的负担。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值