python抓取网页数据(Python字符串操作技巧汇总及《Python入门与进阶经典教程》)

优采云 发布时间: 2021-09-16 09:04

  python抓取网页数据(Python字符串操作技巧汇总及《Python入门与进阶经典教程》)

  本文文章主要介绍Python捕获HTML网页并将其保存为PDF文件的方法。结合实例,分析了pypdf2模块的安装以及Python基于pypdf2模块捕获HTML页面和生成PDF文件的相关操作技巧。有需要的朋友可以参考

  本例描述了用Python捕获HTML网页并将其保存为PDF文件的方法。与您分享,供您参考,如下所示:

  一、序言

  今天的介绍是捕获HTML网页并将其保存为PDF格式。没有太多废话,你可以直接进入教程

  今天的示例以廖雪峰老师的Python教程网站为例:

  二、制备

  1.pypdf2的安装和使用(用于合并PDF):

  Pypdf2版本:1.2 5.1

  或

  安装:

  

pip install PyPDF2

  使用示例:

  

from PyPDF2 import PdfFileMerger

merger=PdfFileMerger()

input1=open("hql_1_20.pdf", "rb")

input2=open("hql_21_40.pdf", "rb")

merger.append(input1)

merger.append(input2)

# Write to an output PDF document

output=open("hql_all.pdf", "wb")

merger.write(output)

  2.requests和beatifulsoup是爬虫程序的两个构件。Reuqests用于网络请求,beatifusoup用于操作HTML数据。有了这两个航天飞机,你可以快速工作。我们不需要像scratch这样的爬虫框架。这有点像用牛刀杀鸡这么小的程序。此外,由于它是将HTML文件转换为PDF,因此还需要相应的库支持。Wkhtmltopdf是一个非常有用的工具。它可以为多个平台将HTML转换为PDF。Pdfkit是wkhtmltopdf的python包。首先,安装以下依赖项包

  

pip install requests

pip install beautifulsoup4

pip install pdfkit

  3.install wkhtmltopdf

  windows平台直接下载稳定版本的wkhtmltopdf进行安装。安装后,将程序的执行路径添加到系统环境的$path变量中。否则,如果pdfkit找不到wkhtmltopdf,则会出现错误“找不到wkhtmltopdf可执行文件”。Ubuntu和CentOS可以直接从命令行安装

  

$ sudo apt-get install wkhtmltopdf # ubuntu

$ sudo yum intsall wkhtmltopdf # centos

  三、数据准备

  1.获取每个文章的URL@

  

def get_url_list():

"""

获取所有URL目录列表

:return:

"""

response=requests.get("")

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

menu_tag=soup.find_all(class_="uk-nav uk-nav-side")[1]

urls=[]

for li in menu_tag.find_all("li"):

url="" + li.a.get('href')

urls.append(url)

return urls

  2.pass文章url使用模板保存每个文章HTML文件

  HTML模板:

  

html_template="""

{content}

"""

  保存:

<p>

def parse_url_to_html(url, name):

"""

解析URL,返回HTML内容

:param url:解析的url

:param name: 保存的html文件名

:return: html

"""

try:

response=requests.get(url)

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

# 正文

body=soup.find_all(class_="x-wiki-content")[0]

# 标题

title=soup.find('h4').get_text()

# 标题加入到正文的最前面,居中显示

center_tag=soup.new_tag("center")

title_tag=soup.new_tag('h1')

title_tag.string=title

center_tag.insert(1, title_tag)

body.insert(1, center_tag)

html=str(body)

# body中的img标签的src相对路径的改成绝对路径

pattern="(

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线