爬取百度文庫的付費(fèi)文檔

不要著急花更多的時(shí)間去賺錢,去花時(shí)間,讓自己的時(shí)間更值錢。薪資只是你個(gè)人能力的附屬品

簡介:

因?yàn)槲覀儗W(xué)校有社會(huì)實(shí)踐這種東西,需要寫一個(gè)社會(huì)實(shí)踐心得,但是呢,我在家研究了一個(gè)半月的python,emmmm 你讓我拿什么寫社會(huì)實(shí)踐心得- -,于是只好百度找一篇咳咳借鑒一下,對,就是借鑒一下。然后找到一篇百度文庫的文檔,復(fù)制一下,恩??沒用。下載,恩??還要錢。wtf,你還是人嘛(臉就是那么厚),充錢是不可能充錢的,這輩子都不可能充錢的,學(xué)了一個(gè)半月的python爬蟲,這時(shí)候不就派上用場了,人生苦短,我用python

準(zhǔn)備:

用到的模塊:
  • BeautifulSoup
  • selenium
  • os
安裝:

BeautifulSoup的安裝方式我在之前一篇博客里面講過了,需要的可以去看看。
selenium的安裝:

pip install selenium

然后還需要一個(gè)瀏覽器的驅(qū)動(dòng)程序,如果你用的Chrome,就去下載Chrome的驅(qū)動(dòng)
如果是firefox,就去firefox下載,
然后解壓到/usr/bin 或者 /usr/local/bin里面,就可以了,windows用戶就請自行百度了,哈哈。
但是這種方式有個(gè)弊端,因?yàn)槭谴蜷_瀏覽器的緣故,響應(yīng)速度較慢。解決方式是用Headless Chrome/firefox,無頭瀏覽器。
無頭瀏覽器的意思是沒有用戶界面的瀏覽器。正因?yàn)闆]有圖形界面的緣故,會(huì)比前面的那些瀏覽器運(yùn)行速度快很多,
我這里用的就是無頭瀏覽器(Headless Chrome)
安裝方式:
headless chrome
如果想使用Headless Chrome 對Chrome版本有一定的要求,從官方文檔我們可以看出,mac和linux環(huán)境要求chrome版本是59+,而windows版本的chrome要求是60+,同時(shí)不同版本的chrome的版本要求的ChromeDriver版本也是不一樣的,具體的安裝方式和使用方式看官方文檔吧。
如果你想用headless Firefox,也類似,具體的安裝使用去看官方文檔。

分析思路

因?yàn)榘俣任膸旖?jīng)過了很多js的渲染,所以果斷選擇使用selenium,selenium是什么呢,按照百度的說法,selenium 是一個(gè)用于Web應(yīng)用程序測試的工具。Selenium測試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣,selenium用于爬蟲,主要是用來解決javascript渲染的問題,簡單來說就是模擬實(shí)際用戶操作了。然后我們get一個(gè)目標(biāo)網(wǎng)站,調(diào)用selenium的page_source方法,獲取js渲染以后的源碼,使用BeautifulSoup提取我們要的文檔。

代碼實(shí)現(xiàn)

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    import os
    from bs4 import BeautifulSoup

    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('--headless')
    #headless,官方解釋是Runs Chrome in headless mode,反正是個(gè)必要的參數(shù)
    chrome_options.add_argument('user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 10_2_1 like Mac OS X) AppleWebKit/602.4.6 (KHTML, like Gecko) Version/10.0 Mobile/14D27 Safari/602.1"')
    #我把user-agent改成手機(jī)版的了

    chromedriver = "/usr/bin/chromedriver"
    os.environ["webdriver.chrome.driver"] = chromedriver
    #調(diào)用本地的環(huán)境
    driver = webdriver.Chrome(chrome_options=chrome_options,executable_path=chromedriver)
    driver.get("https://wenku.baidu.com/view/8e85d6eac1c708a1294a4425.html")



    html = driver.page_source
    #獲取源碼
    bf1 = BeautifulSoup(html,'lxml')
    #使用BeautifulSoup分析源碼

    #獲取文章
    text_list = []
    list_div = bf1.find_all('div', class_= 'content singlePage wk-container')
    for list_p in list_div:
        text = list_p.get_text()
        text_list.append(text)
    a = ''.join(text_list).replace('\xa0', '')
    with open('./wenku.txt', 'w') as f:
        f.write(a)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用到的組件 1、通過CocoaPods安裝 2、第三方類庫安裝 3、第三方服務(wù) 友盟社會(huì)化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,158評論 1 180
  • 我叫簡鑫韻,出身在一個(gè)農(nóng)村家庭,我有一個(gè)姐姐和一個(gè)弟弟,我們祖上都是種地為生,媽媽一共生了九個(gè)小孩,可是只有我們?nèi)?..
    墨染舊人閱讀 225評論 0 1
  • 在培養(yǎng)孩子創(chuàng)意繪畫的初期,很多家長對創(chuàng)意繪畫很迷茫,從而在一定程度上遏制了孩子的發(fā)展。那么面對培養(yǎng)孩子的想象力創(chuàng)造...
    藝彩飛揚(yáng)閱讀 500評論 0 0
  • 回顧這章,題目是:如何在異性心中贏得高分 女人在意細(xì)節(jié),女人關(guān)注小事,男人更關(guān)注大事,清楚提醒自己男人和女人來自不...
    Missme_f9c9閱讀 106評論 0 0
  • 他不是沉默靦腆只是沒話和你說,晚安
    可愛的milkmilk閱讀 261評論 0 3

友情鏈接更多精彩內(nèi)容