簡(jiǎn)書文章爬蟲解析

核心解析

# 解析url,獲得標(biāo)題與內(nèi)容
def AnalysisUrl(url):
    try:
        request = urllib2.Request(url, headers=headers)
        response = urllib2.urlopen(request)
        resHtml = response.read()
        # 獲取整個(gè)頁(yè)面
        html = BeautifulSoup(resHtml)
        # 獲取文章內(nèi)容
        a = html.select('div[class="show-content-free"]')
        # 獲取全部圖片
        img = html.select('div[class="image-package"]')
        # 獲取圖片地址
        image = html.select('div[class="show-content-free"] img')
        # 第一段
        content = a[0].__str__()
        # 圖片附加內(nèi)容
        imgpatt = '?imageMogr2/auto-orient/strip%7CimageView2/2/w/'
        # 正則匹配出圖片位置
        patternImgSize = re.compile(r'<div class="image-container" '
                                    r'style="max-width: (.*?)px;', re.S)
        flat = 0
        for i in img:
            # 圖片格式拼接
            d = image[flat].attrs['data-original-src'] + imgpatt \
                + patternImgSize.findall(i.__str__())[0]
            # 圖片替換
            content = content.replace(i.__str__(), "<img src=\"" + d + "\">")
            flat = flat + 1
        # 自定義格式需要
        content = content.replace("<b>", "<strong>")
        content = content.replace("</b>", "</strong>")
        content = content.replace('<div class="show-content-free">', "")
        content = content.replace("</div>", "")

        # 獲得標(biāo)題
        title = html.select('meta[property="og:title"]')[0].attrs['content']

        #解析出內(nèi)容與標(biāo)題
        writeArticle(content, title)
    except:
        print "該文章解析失敗 url:" + url

  • 解析過(guò)濾簡(jiǎn)書自定義標(biāo)簽,文章再用其他富文本逆向解析即可

vue quill editor解析

vue quill editor解析顯示.PNG

完整代碼

# -*- coding:utf-8 -*-
from bs4 import BeautifulSoup
import urllib2
import re
import time

headers = {
    "Accept": "application/json, text/javascript, */*; q=0.01",
    "X-Requested-With": "XMLHttpRequest",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/56.0",
    "Content-Type": "application/json;charset=UTF-8",
    "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
    "Cookie": "JSESSIONID=2D1E55287F8B056E83FD29B114FBA389"
}

# 解析url,獲得標(biāo)題與內(nèi)容
def AnalysisUrl(url):
    try:
        request = urllib2.Request(url, headers=headers)
        response = urllib2.urlopen(request)
        resHtml = response.read()
        # 獲取整個(gè)頁(yè)面
        html = BeautifulSoup(resHtml)
        # 獲取文章內(nèi)容
        a = html.select('div[class="show-content-free"]')
        # 獲取全部圖片
        img = html.select('div[class="image-package"]')
        # 獲取圖片地址
        image = html.select('div[class="show-content-free"] img')
        # 第一段
        content = a[0].__str__()
        # 圖片附加內(nèi)容
        imgpatt = '?imageMogr2/auto-orient/strip%7CimageView2/2/w/'
        # 正則匹配出圖片位置
        patternImgSize = re.compile(r'<div class="image-container" '
                                    r'style="max-width: (.*?)px;', re.S)
        flat = 0
        for i in img:
            # 圖片格式拼接
            d = image[flat].attrs['data-original-src'] + imgpatt \
                + patternImgSize.findall(i.__str__())[0]
            # 圖片替換
            content = content.replace(i.__str__(), "<img src=\"" + d + "\">")
            flat = flat + 1
        # 自定義格式需要
        content = content.replace("<b>", "<strong>")
        content = content.replace("</b>", "</strong>")
        content = content.replace('<div class="show-content-free">', "")
        content = content.replace("</div>", "")

        # 獲得標(biāo)題
        title = html.select('meta[property="og:title"]')[0].attrs['content']

        #解析出內(nèi)容與標(biāo)題
        writeArticle(content, title)
    except:
        print "該文章解析失敗 url:" + url


# 文章寫入,用其他富文本編輯器解析
def writeArticle(content, title):
    with open(title + ".txt", "w") as f:
        f.write(content)

if __name__ == "__main__":
    # auto.py解析出來(lái)的url,進(jìn)行文章解析
    file = open("articleUrl.txt")
    myTime = 0
    while 1:
        line = file.readline()
        # 把這個(gè)字符串頭和尾的空格,以及位于頭尾的\n \t之類給刪掉
        url = line.strip('\n')
        myTime = myTime + 1
        AnalysisUrl(url)
        if myTime > 10:
            # 休眠策略,10篇文章休眠3秒
            time.sleep(3)
            myTime = 0
        if not line:
            break


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明AI閱讀 16,171評(píng)論 3 119
  • 基于Vue的組件庫(kù) https://github.com/ElemeFE/element" element 餓了...
    _執(zhí)著執(zhí)著再執(zhí)著閱讀 32,956評(píng)論 4 230
  • 內(nèi)容 UI組件 開發(fā)框架 實(shí)用庫(kù) 服務(wù)端 輔助工具 應(yīng)用實(shí)例 Demo示例 UI組件 element ★13489...
    秋玄語(yǔ)道閱讀 13,976評(píng)論 3 116
  • 不知不覺(jué)中已到了八月,一年中我最喜歡兩個(gè)月,一個(gè)是四月,一個(gè)是八月,這兩個(gè)數(shù)字好像應(yīng)該都是我的幸運(yùn)數(shù),四月,是我出...
    梅子寶貝閱讀 648評(píng)論 1 9
  • 1. 我有個(gè)朋友叫東子,東子談了一個(gè)女朋友叫小夏,在別人的眼里他們很恩愛(ài),在他們自己的眼里,彼此就是對(duì)方的天使。 ...
    Studenter閱讀 508評(píng)論 0 0

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