最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用python爬蟲批量下載pdf的實(shí)現(xiàn)

 更新時(shí)間:2020年12月01日 14:33:27   作者:WittyLu  
這篇文章主要介紹了用python爬蟲批量下載pdf的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

今天遇到一個(gè)任務(wù),給一個(gè)excel文件,里面有500多個(gè)pdf文件的下載鏈接,需要把這些文件全部下載下來。我知道用python爬蟲可以批量下載,不過之前沒有接觸過。今天下午找了下資料,終于成功搞定,免去了手動(dòng)下載的煩惱。

由于我搭建的python版本是3.5,我學(xué)習(xí)了上面列舉的參考文獻(xiàn)2中的代碼,這里的版本為2.7,有些語法已經(jīng)不適用了。我修正了部分語法,如下:

# coding = UTF-8
# 爬取李東風(fēng)PDF文檔,網(wǎng)址: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)

上面這個(gè)例子是個(gè)很好的模板。當(dāng)然,上面的還不適用于我的情況,我的做法是:先把地址寫到了html文件中,然后對(duì)正則匹配部分做了些修改,我需要匹配的地址都是這樣的,http://pm.zjsti.gov.cn/tempublicfiles/G176200001/G176200001.pdf。改進(jìn)后的代碼如下:

# coding = UTF-8
# 爬取自己編寫的html鏈接中的PDF文檔,網(wǎng)址: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')) #返回匹配的數(shù)組
  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)

這就輕松搞定啦。

我參考了以下資料,這對(duì)我很有幫助:
1、廖雪峰python教程
2、用Python 爬蟲批量下載PDF文檔
3、用Python 爬蟲爬取貼吧圖片
4、Python爬蟲學(xué)習(xí)系列教程

到此這篇關(guān)于用python爬蟲批量下載pdf的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python爬蟲批量下載pdf內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Django實(shí)現(xiàn)商城驗(yàn)證碼模塊的方法

    使用Django實(shí)現(xiàn)商城驗(yàn)證碼模塊的方法

    本文主要涉及圖形驗(yàn)證碼的相關(guān)功能,主要包括,圖形驗(yàn)證碼獲取、驗(yàn)證碼文字存儲(chǔ)、驗(yàn)證碼生成等。需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • Python Docx庫完美操作word文檔實(shí)例探究

    Python Docx庫完美操作word文檔實(shí)例探究

    這篇文章主要為大家介紹了Python Docx庫完美操作word文檔,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python?windows安裝cuda+cudnn+pytorch教程

    python?windows安裝cuda+cudnn+pytorch教程

    這篇文章主要介紹了python?windows安裝cuda+cudnn+pytorch教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 利用python畫出AUC曲線的實(shí)例

    利用python畫出AUC曲線的實(shí)例

    今天小編就為大家分享一篇利用python畫出AUC曲線的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Django中使用haystack+whoosh實(shí)現(xiàn)搜索功能

    Django中使用haystack+whoosh實(shí)現(xiàn)搜索功能

    這篇文章主要介紹了Django之使用haystack+whoosh實(shí)現(xiàn)搜索功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 淺談在JupyterNotebook下導(dǎo)入自己的模塊的問題

    淺談在JupyterNotebook下導(dǎo)入自己的模塊的問題

    這篇文章主要介紹了淺談在JupyterNotebook下導(dǎo)入自己的模塊的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Django返回HTML文件的實(shí)現(xiàn)方法

    Django返回HTML文件的實(shí)現(xiàn)方法

    這篇文章主要介紹了Django返回HTML文件的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python項(xiàng)目打包成二進(jìn)制的方法

    Python項(xiàng)目打包成二進(jìn)制的方法

    這篇文章主要介紹了Python項(xiàng)目打包成二進(jìn)制的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境

    Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境

    這篇文章主要介紹了Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境,需要的朋友可以參考下
    2018-11-11
  • Python 元組(Tuple)操作詳解

    Python 元組(Tuple)操作詳解

    Python的元組與列表類似,不同之處在于元組的元素不能修改,元組使用小括號(hào),列表使用方括號(hào),元組創(chuàng)建很簡單,只需要在括號(hào)中添加元素,并使用逗號(hào)隔開即可
    2014-03-03

最新評(píng)論

蒙城县| 镇原县| 什邡市| 湄潭县| 重庆市| 凉城县| 济源市| 金阳县| 临泉县| 临澧县| 阿拉善右旗| 仙桃市| 巍山| 徐水县| 原平市| 驻马店市| 临夏县| 烟台市| 信宜市| 塔城市| 武邑县| 米泉市| 托克托县| 乌拉特前旗| 定陶县| 巫溪县| 榆中县| 横峰县| 天气| 沙河市| 内丘县| 隆昌县| 双牌县| 东阿县| 怀宁县| 天津市| 扶风县| 天全县| 金溪县| 突泉县| 全椒县|