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

Python實(shí)現(xiàn)的爬取百度文庫功能示例

 更新時(shí)間:2019年02月16日 10:50:55   作者:i_have_a_girlfriend  
這篇文章主要介紹了Python實(shí)現(xiàn)的爬取百度文庫功能,結(jié)合實(shí)例形式分析了Python針對(duì)百度文庫的爬取、編碼轉(zhuǎn)換、文件保存等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)的爬取百度文庫功能。分享給大家供大家參考,具體如下:

# -*- coding: utf-8 -*-
from selenium import webdriver
from bs4 import BeautifulSoup
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH# 用來居中顯示標(biāo)題
from time import sleep
from selenium.webdriver.common.keys import Keys
# 瀏覽器安裝路徑
#BROWSER_PATH=\'C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chromedriver.exe'
#目的URL
DEST_URL='https://wenku.baidu.com/view/aa31a84bcf84b9d528ea7a2c.html'
#用來保存文檔
doc_title = ''
doc_content_list = []
def find_doc(driver, init=True):
  global doc_content_list
  global doc_title
  stop_condition = False
  html = driver.page_source
  soup1 = BeautifulSoup(html, 'lxml')
  if (init is True): # 得到標(biāo)題
    title_result = soup1.find('div', attrs={'class': 'doc-title'})
    doc_title = title_result.get_text() # 得到文檔標(biāo)題
    # 拖動(dòng)滾動(dòng)條
    init_page = driver.find_element_by_xpath( "http://div[@class='foldpagewg-text-con']")
    print(type(init_page), init_page)
    driver.execute_script('arguments[0].scrollIntoView();', init_page)
    init_page.click()
    init = False
  else:
    try:
      page = driver.find_element_by_xpath( "http://div[@class='pagerwg-schedule']")
      #print(type(next_page), next_page)
      next_page = driver.find_element_by_class_name("pagerwg-button")
      station = driver.find_element_by_xpath( "http://div[@class='bottombarwg-root border-none']")
      driver.execute_script('arguments[0].scrollIntoView(false);', station)
      #js.executeScript("arguments[0].click();",next_page);
      #sleep(5)
      '''js = "window.scrollTo(508,600)"
      driver.execute_script(js)'''
      next_page.click()
    except:
      #結(jié)束條件
      print("找不到元素")
      stop_condition = True
      #next_page.send_keys(Keys.ENTER)
      # 遍歷所有的txt標(biāo)簽標(biāo)定的文檔,將其空格刪除,然后進(jìn)行保存
  content_result = soup1.find_all('p', attrs={'class': 'txt'})
  for each in content_result:
    each_text = each.get_text()
    if ' ' in each_text:
      text = each_text.replace(' ', '')
    else:
      text = each_text
    # print(each_text)
    doc_content_list.append(text)
          # 得到正文內(nèi)容
  sleep(2) # 防止頁面加載過慢
  if stop_condition is False:
    doc_title, doc_content_list = find_doc(driver, init)
  return doc_title, doc_content_list
def save(doc_title, doc_content_list):
  document = Document()
  heading = document.add_heading(doc_title, 0)
  heading.alignment = WD_ALIGN_PARAGRAPH.CENTER # 居中顯示
  for each in doc_content_list:
    document.add_paragraph(each)
  # 處理字符編碼問題
  t_title = doc_title.split()[0]
  #print(t_title)
  #document.save('2.docx')
  document.save('百度文庫-%s.docx'% t_title)
  print("\n\nCompleted: %s.docx, to read." % t_title)
  driver.quit()
if __name__ == '__main__':
  options = webdriver.ChromeOptions()
  options.add_argument('user-agent="Mozilla/5.0 (Linux; Android 4.0.4; \ Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) \ Chrome/18.0.1025.133 Mobile Safari/535.19"')
  #driver = webdriver.Chrome(BROWSER_PATH, chrome_options=options)
  driver = webdriver.Chrome(chrome_options=options)
  driver.get(DEST_URL)
  #JavascriptExecutor js = (JavascriptExecutor) driver;
  print("**********START**********")
  title, content = find_doc(driver, True)
  save(title, content)
  driver.quit()

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 基于Python實(shí)現(xiàn)模擬三體運(yùn)動(dòng)的示例代碼

    基于Python實(shí)現(xiàn)模擬三體運(yùn)動(dòng)的示例代碼

    此前所做的一切三體和太陽系的動(dòng)畫,都是基于牛頓力學(xué)的,而且直接對(duì)微分進(jìn)行差分化,從而精度非常感人,用不了幾年就得撞一起去。所以本文來用Python重新模擬一下三體運(yùn)動(dòng),感興趣的可以了解一下
    2023-03-03
  • 在python中用print()輸出多個(gè)格式化參數(shù)的方法

    在python中用print()輸出多個(gè)格式化參數(shù)的方法

    今天小編就為大家分享一篇在python中用print()輸出多個(gè)格式化參數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 教你如何在Pytorch中使用TensorBoard

    教你如何在Pytorch中使用TensorBoard

    TensorBoard是TensorFlow中強(qiáng)大的可視化工具,今天通過本文給大家介紹如何在Pytorch中使用TensorBoard,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友一起看看吧
    2021-08-08
  • python的幾種矩陣相乘的公式詳解

    python的幾種矩陣相乘的公式詳解

    這篇文章主要介紹了python的幾種矩陣相乘的公式詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python中numpy數(shù)組的維度增減方法詳解

    Python中numpy數(shù)組的維度增減方法詳解

    這篇文章主要介紹了Python中numpy數(shù)組的維度增減方法詳解,在操作數(shù)組情況下,需要按照某個(gè)軸將不同數(shù)組的維度對(duì)齊,這時(shí)候需要為數(shù)組添加維度(特別是將二維數(shù)組變成高維張量的情況下),numpy提供了expand_dims()函數(shù)來為數(shù)組增加維度,需要的朋友可以參考下
    2023-09-09
  • Python中iter函數(shù)的具體使用

    Python中iter函數(shù)的具體使用

    Python中iter函數(shù)用于創(chuàng)建迭代器對(duì)象,可以遍歷可迭代對(duì)象的元素,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Web服務(wù)器框架 Tornado簡(jiǎn)介

    Web服務(wù)器框架 Tornado簡(jiǎn)介

    Tornado Web Server 是使用Python編寫出來的一個(gè)極輕量級(jí)、高可伸縮性和非阻塞IO的Web服務(wù)器軟件,著名的 Friendfeed 網(wǎng)站就是使用它搭建的。
    2014-07-07
  • Python?tkinter中四個(gè)常用按鈕的用法總結(jié)

    Python?tkinter中四個(gè)常用按鈕的用法總結(jié)

    tkinter中有四個(gè)控件被冠以Button之名,分別是:Button,?Checkbutton,?Radiobutton,?Menubutton,下面小編就來和大家聊聊它們的具體用法,感興趣的可以學(xué)習(xí)一下
    2023-09-09
  • python實(shí)現(xiàn)文件的分割與合并

    python實(shí)現(xiàn)文件的分割與合并

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)文件的分割與合并,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Python利用字典將兩個(gè)通訊錄文本合并為一個(gè)文本實(shí)例

    Python利用字典將兩個(gè)通訊錄文本合并為一個(gè)文本實(shí)例

    這篇文章主要介紹了Python利用字典將兩個(gè)通訊錄文本合并為一個(gè)文本實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01

最新評(píng)論

平顶山市| 东乡县| 鞍山市| 揭东县| 和田市| 无锡市| 商丘市| 临朐县| 德格县| 申扎县| 深州市| 昌平区| 甘孜| 平陆县| 平定县| 任丘市| 时尚| 梨树县| 常宁市| 德江县| 湘潭县| 金华市| 龙游县| 翁牛特旗| 监利县| 沾化县| 苏尼特右旗| 绵阳市| 桂林市| 盖州市| 昆明市| 嘉祥县| 讷河市| 都匀市| 龙江县| 富宁县| 修文县| 敦化市| 涿州市| 安陆市| 定兴县|