最新Python爬取CSDN文章并制作成PDF

‘margin-bottom’: ‘0.75in’,

‘margin-left’: ‘0.75in’,

‘encoding’: “UTF-8”,

‘custom-header’ : [

(‘Accept-Encoding’, ‘gzip’)

]

‘cookie’: [

(‘cookie-name1’, ‘cookie-value1’),

(‘cookie-name2’, ‘cookie-value2’),

],

‘no-outline’: None

}

pdfkit.from_url(‘http://google.com’, ‘out.pdf’, options=options)

完整代码


selenium_page.py

import re

import requests

def get_songid():

“”“获取音乐的songid”“”

url = ‘http://music.taihe.com/artist/2517’

response = requests.get(url=url)

html = response.text

sids = re.findall(r’href=“/song/(\d+)”', html)

return sids

def get_music_url(songid):

“”“获取下载链接”“”

api_url = f’http://musicapi.taihe.com/v1/restserver/ting?method=baidu.ting.song.playAAC&format=jsonp&songid={songid}&from=web’

response = requests.get(api_url.format(songid=songid))

data = response.json()

print(data)

try:

music_name = data[‘songinfo’][‘title’]

music_url = data[‘bitrate’][‘file_link’]

return music_name, music_url

except Exception as e:

print(e)

def download_music(music_name, music_url):

“”“下载音乐”“”

response = requests.get(music_url)

content = response.content

save_file(music_name+‘.mp3’, content)

def save_file(filename, content):

“”“保存音乐”“”

with open(file=filename, mode=“wb”) as f:

f.write(content)

if name == “main”:

for song_id in get_songid():

music_name, music_url = get_music_url(song_id)

download_music(music_name, music_url)

CSDN.py

-- coding=utf-8 --

import pdfkit

import parsel

import requests

html_template = “”"

{content}

“”"

headers = {

“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36”,

‘Host’: ‘blog.csdn.net’,

‘Referer’: ‘https://blog.csdn.net’,

}

def get_csdn_cookie():

response = requests.get(‘https://www.csdn.net/’, headers=headers)

return response.cookies

def get_html(url):

“”“获取索引页”“”

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

sel = parsel.Selector(response.text)

list_a = sel.css(‘.article-list a’)

for i in list_a[2:]:

article_index = i.css(‘a::attr(href)’).get()

yield article_index

def csdn(url: str, cookie=get_csdn_cookie()):

“”“下载 CSDN 文章html”“”

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

获取文章标题内容

sel = parsel.Selector(response.text)

print(response.text)

title = sel.css(‘.title-article::text’).get()

article = sel.css(‘article’).get()

return title, article

def html_to_pdf(filename_html, filename_pdf):

“”“HTML 2 PDF”“”

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

options = {

‘page-size’: ‘Letter’,

‘margin-top’: ‘0.75in’,

‘margin-right’: ‘0.75in’,

‘margin-bottom’: ‘0.75in’,

‘margin-left’: ‘0.75in’,

‘encoding’: “UTF-8”,

‘custom-header’: [

(‘Accept-Encoding’, ‘gzip’)

],

}

pdfkit.from_file(filename_html, filename_pdf, options=options, configuration=config)

if name == ‘main’:

title, article = csdn(‘https://blog.csdn.net/ZackSock/article/details/101645494’)

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 15
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值