『Python金融ビッグデータマイニングと分析全プロセス詳細』第10章PDFテキスト解析ノート整理


1、PDF一括ダウンロード
手順:
(1)ダウンロードするpdfキーワードをシミュレーションして検索し,ダウンロードページの内容を得る.
(2)タイトル、リンク、日付を抽出する.2018-2019年の
(3)ダウンロードリンクにアクセスし,ダウンロードボタンをクリックしてダウンロードするシミュレーションを行う.ここでtimeを追加することに注意する.sleep()はダウンロード待ち時間として
# =============================================================================
# 10.1               by    
# =============================================================================

from selenium import webdriver
import re
import time
browser = webdriver.Chrome()
#pdf    
url = 'http://www.cninfo.com.cn/new/fulltextSearch?notautosubmit=&keyWord=  '
browser.get(url)
time.sleep(3)
data = browser.page_source
p_count = 'id="page-info-title">   (.*?) '
count = re.findall(p_count, data)[0]  #       ,        [0],  findall        
#     ,    10   
pages = int(int(count)/10)

# 1.           
datas = []
datas.append(data)  #              datas     
for i in range(3):  #          range(3),        range(pages)
    #             ,    Selenium        “   ”  。
    browser.find_element_by_xpath('//*[@id="pagination_title"]/ul/li[12]').click()
    time.sleep(2)
    data = browser.page_source
    #                
    datas.append(data)
    time.sleep(1)
    # datas        ,          
alldata = "".join(datas)
browser.quit()

# 2.       
#    
p_title = '(.*?)'
#    
p_href = '.*?'
#    
p_date = '
(.*?)
' title = re.findall(p_title, alldata) href = re.findall(p_href, alldata) date = re.findall(p_date, alldata) # 3. for i in range(len(title)): title[i] = re.sub('<.>', '', title[i]) href[i] = 'http://www.cninfo.com.cn' + href[i] href[i] = re.sub('amp;', '', href[i]) date[i] = date[i].split(' ')[0] print(str(i + 1) + '.' + title[i] + ' - ' + date[i]) print(href[i]) # 4. for i in range(len(title)): if '2018' in date[i] or '2019' in date[i]: # 2018 2019 , title[i] = title[i] href[i] = href[i] date[i] = date[i] # 2018 2019 else: title[i] = '' href[i] = '' date[i] = '' # while , , remove() while '' in title: title.remove('') while '' in href: href.remove('') while '' in date: date.remove('') # 5. PDF - for i in range(len(href)): browser = webdriver.Chrome() browser.get(href[i]) try: # browser.find_element_by_xpath('/html/body/div/div[1]/div[2]/div[1]/div/a[4]').click() time.sleep(3) # , browser.quit() print(str(i+1) + '.' + title[i] + ' PDF ') except: print(title[i] + ' PDF ') # 1: # for i in range(len(href)): # chrome_options = webdriver.ChromeOptions() # chrome_options.add_argument('--headless') # browser = webdriver.Chrome(options=chrome_options) # browser.get(href[i]) # try: # browser.find_element_by_xpath('/html/body/div/div[1]/div[2]/div[1]/div/a[4]').click() # time.sleep(3) # , # browser.quit() # print(str(i+1) + '.' + title[i] + ' PDF ') # except: # print(title[i] + ' PDF ') # 2: PDF - # for i in range(len(href)): # chrome_options = webdriver.ChromeOptions() # prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': 'd:\\ '} # # chrome_options.add_experimental_option('prefs', prefs) # browser = webdriver.Chrome(chrome_options=chrome_options) # browser.get(href[i]) # try: # browser.find_element_by_xpath('/html/body/div/div[1]/div[2]/div[1]/div/a[4]').click() # time.sleep(3) # , # print(str(i+1) + '.' + title[i] + ' ') # browser.quit() # except: # print(title[i] + ' PDF')