博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬取王垠的博客并生成pdf
阅读量:6332 次
发布时间:2019-06-22

本文共 1987 字,大约阅读时间需要 6 分钟。

尚未完善,有待改进

#!/usr/bin/env python3# -*- coding: utf-8 -*-__author__ = 'jiangwenwen'import pdfkitimport timeimport requestsimport randomfrom bs4 import BeautifulSoupfrom fake_useragent import UserAgent# 请求头ua = UserAgent()headers = {    'cache-control': "no-cache",    "Host": "www.yinwang.org",    "User-Agent": ua.random,    "Referer": "http://www.yinwang.org/",}# IP代理池ip_pool = ['123.55.114.217:9999',           '110.52.235.91:9999',           '183.163.43.61:9999',           '119.101.126.52:9999',           '119.101.124.165:9999',           '119.101.125.38:9999',           '119.101.125.84:9999',           '110.52.235.80:9999',           '119.101.125.49:9999',           '110.52.235.162:9999',           '119.101.124.23:9999'           ]# 打印成pdfdef print_pdf(url, file_name):    start = time.time()    print("正在打印中...")    headers["User-Agent"] = ua.random    print("User-Agent是:{0}".format(headers["User-Agent"]))    content = requests.get(url, headers=headers, timeout=3, proxies=get_proxy(ip_pool)).text    pdfkit.from_string(content, file_name)    end = time.time()    print("打印成功,本次打印耗时:%0.2f秒" % (end - start))# 获得有效代理def get_proxy(ip_pool):    for ip in ip_pool:        url = "http://www.yinwang.org/"        # 用requests来验证ip是否可用        try:            requests.get(url, proxies={"http": "http://{}".format(ip), }, timeout=3)        except:            continue        else:            proxies = {                "http": "http://{}".format(ip),                "https": "http://{}".format(ip),            }            return proxiesresponse = requests.get("http://www.yinwang.org/", headers=headers, proxies=get_proxy(ip_pool))soup = BeautifulSoup(response.content, 'html.parser')tags = soup.find_all("li", class_="list-group-item title")for child in tags:    article_url = "http://www.yinwang.org" + child.a.get('href')    article_file_name = "桌面\\" + child.a.string + ".pdf"    print_pdf(article_url, article_file_name)

转载于:https://www.cnblogs.com/jiangwenwen1/p/10328339.html

你可能感兴趣的文章
KAPPA statistic
查看>>
接口与抽象类的区别
查看>>
mdadm工具创建raid操作示例
查看>>
Linux mkdir 命令
查看>>
CSS之清除浮动
查看>>
springMVC+Java验证码完善注册功能
查看>>
MySQL学习笔记(四):存储引擎的选择
查看>>
PLSQL Developer 常用设置
查看>>
Dynea phenolic film coated plywood the concrete formwork shuttering panel
查看>>
OpenCascade B-Spline Basis Function
查看>>
理解JS中的call,apply,bind的用法
查看>>
网络数据请求
查看>>
左旋字符串的三种实现
查看>>
MakeFile
查看>>
Java的23种设计模式
查看>>
接口测试培训:HTTP协议基础 2
查看>>
老李分享:Android性能优化之内存泄漏 1
查看>>
eclipse提交代码至GitHub
查看>>
nginx的proxy_redirect
查看>>
《深入理解Spring Cloud与微服务构建》第7章 Spring Boot Security详解
查看>>