当前位置:首页 » Python基础教程 » 用python爬虫批量下载pdf的完成

用python爬虫批量下载pdf的完成

1313°c 2021年01月20日 17:06 Python基础教程 0条评论
  移步手机端

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章

今日碰到一个每日任务,给一个excel文档,里边有500好几个pdf文件的下载地址,必须把这种文档所有免费下载出来。我明白用python爬虫能够批量下载,但是以前沒有触碰过。今天上午找了下材料,总算取得成功拿下,免除了手动式免费下载的苦恼。

因为我构建的python版本是3.5,我学了上边例举的论文参考文献2中的编码,这儿的版本为2.7,有一些英语的语法早已不适合了。我调整了一部分英语的语法,以下:

# coding = UTF-8
# 抓取李东风PDF文档,网址:http://www.math.pku.edu.cn/teachers/lidf/docs/textrick/index.htm

import urllib.request
import re
import os

# open the url and read
def getHtml(url):
  page = urllib.request.urlopen(url)
  html = page.read()
  page.close()
  return html

# compile the regular expressions and find
# all stuff we need
def getUrl(html):
  reg = r'(?:href|HREF)="?((?:http://)?. ?\.pdf)'
  url_re = re.compile(reg)
  url_lst = url_re.findall(html.decode('gb2312'))
  return(url_lst)

def getFile(url):
  file_name = url.split('/')[-1]
  u = urllib.request.urlopen(url)
  f = open(file_name, 'wb')

  block_sz = 8192
  while True:
    buffer = u.read(block_sz)
    if not buffer:
      break

    f.write(buffer)
  f.close()
  print ("Sucessful to download"   " "   file_name)


root_url = 'http://www.math.pku.edu.cn/teachers/lidf/docs/textrick/'

raw_url = 'http://www.math.pku.edu.cn/teachers/lidf/docs/textrick/index.htm'

html = getHtml(raw_url)
url_lst = getUrl(html)

os.mkdir('ldf_download')
os.chdir(os.path.join(os.getcwd(), 'ldf_download'))

for url in url_lst[:]:
  url = root_url   url
  getFile(url)

上边这一事例是个非常好的模版。自然,上边的还不适感用以我的状况,我的做法是:先把详细地址写到html文档中,随后对正则匹配一部分干了些改动,我需要配对的详细地址全是那样的,http://pm.zjsti.gov.cn/tempublicfiles/G176200001/G176200001.pdf。改善后的编码以下:

# coding = UTF-8
# 抓取自身撰写的html连接中的PDF文档,网址:file:///E:/ZjuTH/Documents/pythonCode/pythontest.html

import urllib.request
import re
import os

# open the url and read
def getHtml(url):
  page = urllib.request.urlopen(url)
  html = page.read()
  page.close()
  return html

# compile the regular expressions and find
# all stuff we need
def getUrl(html):
  reg = r'([A-Z]\d )' #配对了G176200001
  url_re = re.compile(reg)
  url_lst = url_re.findall(html.decode('UTF-8')) #回到配对的数组
  return(url_lst)

def getFile(url):
  file_name = url.split('/')[-1]
  u = urllib.request.urlopen(url)
  f = open(file_name, 'wb')

  block_sz = 8192
  while True:
    buffer = u.read(block_sz)
    if not buffer:
      break

    f.write(buffer)
  f.close()
  print ("Sucessful to download"   " "   file_name)


root_url = 'http://pm.zjsti.gov.cn/tempublicfiles/' #下载链接中同样的一部分

raw_url = 'file:///E:/ZjuTH/Documents/pythonCode/pythontest.html'

html = getHtml(raw_url)
url_lst = getUrl(html)

os.mkdir('pdf_download')
os.chdir(os.path.join(os.getcwd(), 'pdf_download'))

for url in url_lst[:]:
  url = root_url   url '/' url '.pdf' #产生详细的下载链接
  getFile(url)

这就轻轻松松拿下啦。

我参照了下列材料,这一件事很有协助:
1、廖雪峰python实例教程
2、用python 爬虫批量下载PDF文档
3、用python 爬虫抓取百度贴吧照片
4、python爬虫学习培训系列产品实例教程

到此这篇有关用python爬虫批量下载pdf的完成的文章内容就详细介绍到这了,大量有关python爬虫批量下载pdf內容请搜索python学习网之前的文章内容或再次访问下边的类似文章期待大伙儿之后多多的适用python学习网!

欢迎阅读本文,希望本文对您有所帮助!

本文链接:http://www.cqrxzs.com/181.html

版权声明:本文为原创文章,版权归 雨凡教育 所有,欢迎分享本文,转载请保留出处!

百度推荐获取地址:http://tuijian.baidu.com/,百度推荐可能会有一些未知的问题,使用中有任何问题请直接联系百度官方客服!

评论(0) 赞助本站

发表评论:


【顶】 【踩】 【好】 【懵】 【赞】 【表情】

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

推荐阅读
04月20日

Python模块汇总(常见第三方库)

发布 : | 分类 : Python基础教程 | 评论 : 0人 | 浏览 : 366次

模块 定义 计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里。在python里,一个.py文件就是一个模块 优点: 提高代码的可维护性。 提高代码的复用,当模块完成时就可以在其他代码中调用 引用其他模块,包含python内置模块和其他第三方模块 避免函数名和变量名等名称冲突 Python语言生态 Python语言提供超过15万个第三方库,Python库之间广泛联系、逐层封装。 使用pip安装 Python社区:ht...

04月20日

python 应用while写猜年龄小游戏过程解析

发布 : | 分类 : Python基础教程 | 评论 : 0人 | 浏览 : 357次

要求: 用户一轮有三次机会开展猜年龄手机游戏,每猜一次会给相对应的提示告之用户应当往大些猜或是小一点猜,三次机会用完之后,可挑选重新再来三次机会。 构思: 最先界定一个原始年龄为25和原始次数0,随后每猜一次,次数加1,另外提示猜的年龄是很小或是很大,猜校时退出游戏,当次数相当于3时,提示用户是不是重新再来。 编码以下: age_of_fww = 25 count = 0 while count < 3: guess_age = int(input("guess_age:"))...

04月20日

python读文件的步骤

发布 : | 分类 : Python基础教程 | 评论 : 0人 | 浏览 : 70次

python怎么读文档? 最先,在桌面创建一个txt文档,在上面键入以下几点: 您好。Hello.abcdefg啊非常好的设计风格 查询文档的特性,获得文档的相对路径: D:\HintSoft\Hint-W7\Desktop 文件夹名称是——新建文本文档.txt, 那麼,相对路径再加上文件夹名称,便是肯定文件夹名称: D:\HintSoft\Hint-W7\Desktop\新建文本文档.txt 用python开启这一文档,并取名为f。 f = open(r"D:\HintSo...

04月20日

pip 安装库比较慢的解决方法(国内镜像)

发布 : | 分类 : Python基础教程 | 评论 : 0人 | 浏览 : 58次

针对Python开发设计客户而言,PIP安装程序包是家常饭。但海外的源下载速度确实很慢,虚度光阴。并且经常会出现下载后安装打错难题。 因此把PIP安装源换成国内镜像,能够 大幅度提高下载速度,还能够提升 安装通过率。 中国源: 新版本ubuntu规定应用https源,要留意。 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云服务器:http://mirrors.aliyun.com/pypi/simple/ 中国科大 https://pypi....

04月20日

python完成的按要求生成手机号功能示例

发布 : | 分类 : Python基础教程 | 评论 : 0人 | 浏览 : 53次

文中案例叙述了python完成的按要求生成手机号作用。共享给大伙儿供大伙儿参照,实际以下: 见到一个生成手机号的编码,因此自身提升了一下,能够 适用按要求生成手机号。 #!/usr/bin/python # coding=utf-8 ''' 1:任意生成11位手机号 2:只自定义地域(第4--7位) 3:只自定义手机尾号(第八--11位) 4:自定义后8位手机号 5:只自定义前3位 ''' import time,random print __doc__ def moblieRando...

04月19日

为什么说Python能够 完成全部的算法

发布 : | 分类 : Python基础教程 | 评论 : 0人 | 浏览 : 103次

今日强烈推荐一个Python学习培训的干货知识。 好多个印尼小伙,在GitHub里建了一个各种各样Python算法的初学者全集,如今标星早已超出2.六万。 这一新项目关键包含两一部分內容:一是各种各样算法的基本概念解读,二是各种各样算法的编码完成。 传送器在这里: https://github.com/TheAlgorithms/Python 简易详细介绍下。 算法的基本概念解读一部分,包含排序算法、检索算法、插值法算法、弹跳检索算法、迅速挑选算法、禁忌搜索算法、数据加密算法等。 这一部分內容...

04月19日

Django中应用haystack whoosh完成搜索功能

发布 : | 分类 : Python基础教程 | 评论 : 0人 | 浏览 : 114次

为了实现项目中的搜索功能,我们使用的是全文检索框架haystack+搜索引擎whoosh+中文分词包jieba 安装和配置 安装所需包 pip install django-haystack pip install whoosh pip install jieba 去settings文件注册haystack应用 INSTALLED_APPS = [ 'haystack', # 注册全文检索框架 ] 在settings文件中配置全文检索框架 # 全文检索框架的配置 HAYSTACK_...

04月19日

Django完成文件上传和下载功能

发布 : | 分类 : Python基础教程 | 评论 : 0人 | 浏览 : 109次

文中案例为大伙儿共享了Django下进行文件提交和下载作用的实际编码,供大伙儿参照,具体内容以下 一、文件提交 Views.py def upload(request): if request.method == "POST": # 要求方式为POST时,开展解决 myFile = request.FILES.get("myfile", None) # 获得提交的文件,如果没有文件,则默认设置为None if not myFile: return HttpResponse("no f...

04月19日

Python3 无反复字符的最多子串的完成

发布 : | 分类 : Python基础教程 | 评论 : 0人 | 浏览 : 103次

题型: 给出一个字符串,你要找到在其中不带有反复字符的 最多子串 的长度。 示例: 示例 1: 键入: “abcabcbb” 输出: 3 表述: 由于无反复字符的最多子串是 “abc”,因此其长度为 3。 示例 2: 键入: “bbbbb” 输出: 1 表述: 由于无反复字符的最多子串是 “b”,因此其长度为 1。 示例 3: 键入: “pwwkew” 输出: 3 表述: 由于无反复字符的最多子串是 “wke”,因此其长度为 3。 一定要注意,你的答案务必是 子串 的长度,“pwke...

您好,欢迎到访网站!
  查看权限