您当前的位置: 首页 >  Python

嗨学编程

暂无认证

  • 0浏览

    0关注

    1405博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

python爬取CSDN博客文章并制作成PDF文件

嗨学编程 发布时间:2020-09-17 16:21:55 ,浏览量:0

前言

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

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

开发工具
  • python 3.6.5
  • pycharm
import pdfkit
import requests
import parsel

相关模块可pip安装 在这里插入图片描述

1、获取每篇文章的url地址

在这里插入图片描述 如果你不知道怎么写css选择器,不知道怎么写xpath 教你一个不推荐使用的小技巧

选择你想要获取的数据,点击右键 copy 有copy selector就是复制css提取,copy xpath则是xpath的

在这里插入图片描述

在这里插入图片描述

当然了,还是不建议这样去写,不过可以,这样的方法可以检测你提取数据时,是否有错误

实现代码
import requests
import parsel
response = requests.get(url=url, headers=headers, cookies=cookie)
selector = parsel.Selector(response.text)
urls = selector.css('.article-list h4 a::attr(href)').getall()
for html_url in urls:
	print(html_url)

在这里插入图片描述 这样就获取了每一篇文章的url地址

2、获取每一篇文章内容

提取解析方法同上

response = requests.get(url, headers=headers, cookies=cookie)
# text 文本(字符串)
# 遭遇了反扒
# print(response.text)

# 提取文章部分
sel = parsel.Selector(response.text)
# css 选择器
article = sel.css('article').get()
title = sel.css('h1::text').get()
print(title)
print(article)

在这里插入图片描述 现在所看到的返回的内容结果,除了标题是咱们需要的那样,但是内容确实网页数据。

咱们只需要把html改成PDF格式

保存数据
import pdfkit
html_str = """



    
    Document


{article}


"""
html = html_str.format(article=article)
with open(f'{title}.html', mode='w', 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(f'{title}.html', f'{title}.pdf', configuration=config)

这里是需要一个wkhtmltopdf.exe 配置文件的 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

关注
打赏
1663681728
查看更多评论
立即登录/注册

微信扫码登录

0.1383s