python制作标书_爬取比比网中标标书,并保存为PDF格式文件

本文介绍了如何使用Python的requests、parsel和pdfkit库,抓取静态网站上的招标信息,包括详情页标题和内容,并将抓取的数据保存为HTML并转换为PDF格式。重点涉及了网页解析和PDF生成技术。

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章来源于CSDN,作者嗨学编程

python开发环境

python 3.6

pycharm

import requests

import parsel

import pdfkit

import time

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

相关模块pip安装即可

目标网页分析

0cd1affc2b3688a94082956b8d5f8be8.png

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

1、先从列表页中获取详情页的URL地址

是静态网站,可以直接请求网页获取数据

5d944ac4965ecf596091f236cada978a.png

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

for page in range(1, 31):

url = 'https://www.bibenet.com/mfzbu{}.html'.format(page)

headers = {

'Referer': 'https://www.bibenet.com/mianfei/',

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'

}

response = requests.get(url=url, headers=headers)

selector = parsel.Selector(response.text)

urls = selector.css('body > div.wrap > div.clearFiex > div.col9.fl > div.secondary_box > table tr .fl a::attr(href)').getall()

for page_url in urls:

print(page_url)

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

2、从详情页中获取标题以及内容

response_2 = requests.get(url=page_url, headers=headers)

selector_2 = parsel.Selector(response_2.text)

article = selector_2.css('.container').get()

title = selector_2.css('.detailtitle::text').get()

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

3、保存html网页数据并转成PDF

html_str = """

Document

{article}

"""

def download(article, title):

html = html_str.format(article=article)

html_path = 'D:\\python\\demo\\招标网\\文书\\' + title + '.html'

pdf_path = 'D:\\python\\demo\\招标网\\文书\\' + title + '.pdf'

with open(html_path, mode='wb', encoding='utf-8') as f:

f.write(html)

print('{}已下载完成'.format(title))

# exe 文件存放的路径

config = pdfkit.configuration(wkhtmltopdf='C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe')

# 把 html 通过 pdfkit 变成 pdf 文件

pdfkit.from_file(html_path, pdf_path, configuration=config)

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

运行实现效果

5975876b8721b43c4a3a24e397adc614.png

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

684e9f53adac764ad46b4364dcc76d58.png

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

795bf75d9fbf81f783b98149c7d3eee1.png

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值