python csdn 모든 블 로그 다운로드 및 PDF 변환 실현
먼저 하나의 블 로그 다운로드 pdf 형식 으로 전환 하 는 작업 을 하 겠 습 니 다.
python 에서 html 를 pdf 로 바 꾸 는 데 자주 사용 되 는 도 구 는 Wkhtmltopdf 공구 꾸러미 입 니 다.python 환경 에서 pdfkit 는 이 공구 꾸러미 의 패키지 클래스 입 니 다.어떻게 pdfkit 를 사용 하고 어떻게 설정 합 니까?다음 과 같은 몇 가지 절차 로 나 뉜 다.
wkhtmltopdf 설치 패 키 지 를 다운로드 하고 컴퓨터 에 설치 합 니 다.
다운로드 주소:https://wkhtmltopdf.org/downloads.html
제 가 내 린 것 은 이 버 전 입 니 다.설치 할 때 경 로 를 기억 하고 호출 할 때 경 로 를 사용 해 야 합 니 다.
개발 도구
기본 사고방식:
1、url + headers
2.웹 페이지 분석:CSDN 웹 페이지 는 정적 웹 페이지 로 웹 소스 코드 를 가 져 오 기 를 요청 합 니 다.
3,lxml 분석 획득 bokeurls, author_name
4,반복,boke 획득url
5.xpath 분석 파일 이름 가 져 오기
6.css 선택 기 에서 탭 텍스트 의 주 체 를 가 져 옵 니 다.
7.구조 조합 html 파일
8.html 파일 저장
9.파일 변환
웹 페이지 분석:CSDN 웹 페이지 는 정적 웹 페이지 로 웹 소스 코드 를 요청 합 니 다.
start_url =“https://i1bit.blog.csdn.net/예 를 들 면
동기 화 로 딩 으로 사이트 주 소 를 확인 합 니 다.
css 선택 기 에서 탭 텍스트 를 가 져 오 는 주 체 는 코드 요점 부분 입 니 다.
css 문법 부분
# css
html_css = parsel.Selector(response_2)
html_content = html_css.css('article').get()
# html
html = \
'''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{}
</body>
</html>
'''.format(html_content)
블 로 거의 블 로 거 를 클릭 하여 개발 자 도 구 를 엽 니 다.
# css
html_css = parsel.Selector(response_2)
html_content = html_css.css('article').get()
# html
html = \
'''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{}
</body>
</html>
'''.format(html_content)
파일 변환
config = pdfkit.configuration(wkhtmltopdf=r' wkhtmltopdf.exe ')
pdfkit.from_file(
html ,
pdf ,
configuration=config
)
# ,
pdfkit.from_file(
html ,
pdf ,
configuration=pdfkit.configuration(wkhtmltopdf=r' wkhtmltopdf.exe ')
)
원본 디 스 플레이:
import parsel, os, pdfkit
from lxml import etree
from requests_html import HTMLSession
session = HTMLSession()
def main():
# 1、url + headers
start_url = input(r' csdn :')
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
'(KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
}
# 2、 : CSDN ,
response_1 = session.get(start_url, headers=headers).text
# 3、 boke_urls, author_name
html_xpath_1 = etree.HTML(response_1)
author_name = html_xpath_1.xpath(r'//*[@id="floor-user-profile_485"]/div/div[1]/div[2]/div[2]/div[1]/div[1]/text()')[0]
boke_urls = html_xpath_1.xpath(r'//article[@class="blog-list-box"]/a/@href')
# 4、 , boke_url
for boke_url in boke_urls:
# 5、
response_2 = session.get(boke_url, headers=headers).text
# 6、xpath
html_xpath_2 = etree.HTML(response_2)
file_name = html_xpath_2.xpath(r'//h1[@id="articleContentId"]/text()')[0]
# 7、css
html_css = parsel.Selector(response_2)
html_content = html_css.css('article').get()
# 8、 html
html = \
'''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{}
</body>
</html>
'''.format(html_content)
# 9、 , html pdf
if not os.path.exists(r'{}-html'.format(author_name)):
os.mkdir(r'{}-html'.format(author_name))
if not os.path.exists(r'{}-pdf'.format(author_name)):
os.mkdir(r'{}-pdf'.format(author_name))
# 10、 html
try:
with open(r'{}-html/{}.html'.format(author_name, file_name), 'w', encoding='utf-8') as f:
f.write(html)
except Exception as e:
print(' ')
# 11、
try:
config = pdfkit.configuration(wkhtmltopdf=r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe')
pdfkit.from_file(
'{}-html/{}.html'.format(author_name, file_name),
'{}-pdf/{}.pdf'.format(author_name, file_name),
configuration=config
)
a = print(r'-- :{}.pdf'.format(file_name))
except Exception as e:
continue
if __name__ == '__main__':
main()
코드 조작:이로써 python 이 csdn 의 모든 블 로 그 를 다운로드 하고 PDF 로 전환 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 python 블 로 그 를 다운로드 하고 PDF 로 전환 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.