首先要清楚http協(xié)議信息包含:uri、body和headers等部分;http請求方式有以下幾種:
常見的http請求有:get、post和head;在python常用的http網(wǎng)絡(luò)請求模塊隨著python版本的不同,大致如下所示:
兩者都有的urllib3和requests, 它們不是標(biāo)準(zhǔn)庫. urllib3 提供線程安全連接池和文件post支持,與urllib及urllib2的關(guān)系不大. requests 自稱HTTP for Humans, 使用更簡潔方便。
在這里我們只講解python2.X的http網(wǎng)絡(luò)請求模塊。
經(jīng)驗具體如下所示:
在網(wǎng)絡(luò)請求中cookie的使用是個很重要的方面,其中保存記錄重要請求行為的cookie,可以將使用的cookie保存到本地,可以從本地加載需要的cookie。
創(chuàng)建cookielib.CookieJar對象自動管理Cookie稍繁瑣一些,但是一旦創(chuàng)建,可供urllib2創(chuàng)建opener,后續(xù)的所有cookie更新和過期刪除都是自動處理的。
可用網(wǎng)址:
可用的其它python http請求模塊:
u frequests
u grequests
其中frequests和grequests的使用方式相同,其中frequests的穩(wěn)定性高于grequests;簡單使用如下所示:
一般常見的響應(yīng)結(jié)果格式為:
常見的html數(shù)據(jù)解析方法為:
常見的純文本解析方法為:
3.3網(wǎng)頁正文提取
網(wǎng)頁正文提取重要性:
正則表達(dá)式可以準(zhǔn)確的抽取某一固定格式的頁面,但面對形形色色的HTML,使用規(guī)則處理難免捉襟見肘。能不能高效、準(zhǔn)確的將一個頁面的正文抽取出來,并做到在大規(guī)模網(wǎng)頁范圍內(nèi)通用,這是一個直接關(guān)系上層應(yīng)用的難題。
調(diào)研的方案:
JoyHTML的目的是解析HTML文本當(dāng)中的鏈接和正文,利用超鏈接密度法為主要判斷依據(jù)的標(biāo)記窗算法,采用DOM樹解析模式。
這個Java類庫提供算法來探測和刪除在一個網(wǎng)頁中主文本內(nèi)容旁多余的重復(fù)內(nèi)容。它已經(jīng)有提供特殊的策略來處理一些常用的功能如:新聞文章提取。
本算法首次將網(wǎng)頁正文抽取問題轉(zhuǎn)化為求頁面的行塊分布函數(shù),并完全脫離HTML標(biāo)簽。通過線性時間建立行塊分布函數(shù)圖,由此圖可以直接高效、準(zhǔn)確的定位網(wǎng)頁正文。同時采用統(tǒng)計與規(guī)則相結(jié)合的方法來解決系統(tǒng)的通用性問題。
在這里我們只使用其中cx-extractor和readability;這里對cx-extractor和readability做個對比,如下所示:
cx-extractor使用實例如下圖所示:
cx-extractor與readability的對比
建議:
果CMS作為優(yōu)秀的內(nèi)容管理系統(tǒng),因其具備強(qiáng)大的采集功能,使客戶可以輕松提取網(wǎng)絡(luò)信息并展示。然而,在采集過程中,原創(chuàng)性尤須重視。文章將剖析利用該CMS進(jìn)行采集時,如何實現(xiàn)偽原創(chuàng),從而保持采集內(nèi)容的獨特性與高品質(zhì)。
理解蘋果CMS采集原理
成功實現(xiàn)偽原創(chuàng)的關(guān)鍵在于對蘋果CMS采集原理有透徹了解。蘋果CMS采集功能通過獲取特定網(wǎng)頁的HTML代碼,抽取出諸如標(biāo)題、正文等關(guān)鍵元素,接著按照用戶預(yù)設(shè)規(guī)則進(jìn)行相關(guān)處理,以生成最終的內(nèi)容。為了實現(xiàn)偽原創(chuàng),在處理階段需添加一些元素,使采集所得內(nèi)容具備一定程度的創(chuàng)新性。
實際運用中,可借助調(diào)整采集規(guī)范和添加處理組件等策略以實現(xiàn)偽原創(chuàng)效果。例如,可以選擇性地對原文進(jìn)行局部置換和添加關(guān)鍵字鏈接,進(jìn)而使生成的文本更具新穎性。
修改采集規(guī)則
蘋果CMS的采擷規(guī)則直接影響內(nèi)容的構(gòu)架及格式,適當(dāng)調(diào)整其參數(shù)便能產(chǎn)生類似原創(chuàng)的結(jié)果。譬如,增加一定的隨機(jī)置換規(guī)則至規(guī)則庫內(nèi),使每次所采擷之內(nèi)容皆異于前次,即便源頭無二,所得之文亦呈現(xiàn)豐富多元,從而提升文章的原創(chuàng)度。
此外,利用調(diào)整采集規(guī)則如部署設(shè)定采集頻率及挑選合適的采集源等方法可有效降低與其他網(wǎng)站發(fā)生的內(nèi)容重復(fù)現(xiàn)象,進(jìn)一步提高網(wǎng)站信息的獨有特性。
使用內(nèi)容處理插件
除了調(diào)整采集規(guī)則之外,通過運用蘋果CMS豐富的插件庫,可實現(xiàn)高質(zhì)量的文章生成。使用者可按照自身需求選用適當(dāng)插件并完成相應(yīng)設(shè)置以滿足不同需求。
運用諸如內(nèi)容自動替換等插件,即可對采集信息作出相應(yīng)處理,將特定詞匯或語句轉(zhuǎn)化為同義詞或等價表達(dá)方式,進(jìn)而提升內(nèi)容的多樣化;同時,借助關(guān)鍵詞鏈接插件,能在采集內(nèi)容中自動添加上相應(yīng)關(guān)鍵詞鏈接,大幅度增強(qiáng)內(nèi)容的豐富程度與可讀性。
結(jié)合人工編輯
雖然借助蘋果CMS的自動采集與處理能力可在一定程度上實現(xiàn)偽原創(chuàng)效果,然而若期望獲得更高原創(chuàng)性,仍需借助人工編輯的專業(yè)技能。通過對采集而來的素材加以精細(xì)化處理及潤色,增加個人鮮明觀點及魅力內(nèi)容,從而使最終呈現(xiàn)出的文章更具特色和吸引力。
在人工編修過程中,遵循采集內(nèi)容的主題與風(fēng)格,適度調(diào)整以確保內(nèi)容連貫性與一致性。另外,適量植入獨特元素及表達(dá)手法,賦予文章更多個性與創(chuàng)意。
不斷優(yōu)化和調(diào)整
塑造偽原創(chuàng)并非一日之功,需持續(xù)優(yōu)化與調(diào)整。實踐中,用戶可通過精細(xì)化管理采集規(guī)則及運用內(nèi)容處理插件等手段,以滿足自身及用戶的需求偏好。
通過利用蘋果CMS所提供的數(shù)據(jù)分析能力,我們能精準(zhǔn)評估并分析演化出的內(nèi)容,全面掌握用戶的反饋及偏好,據(jù)此適時調(diào)整收集策略以及內(nèi)容處理模式,以持續(xù)提高內(nèi)容的品質(zhì)與創(chuàng)新度。
面臨的挑戰(zhàn)與解決方案
在執(zhí)行假擬原創(chuàng)的任務(wù)時,面臨了一系列挑戰(zhàn)與難題。例如,如何保證偽原創(chuàng)內(nèi)容的自然流暢以及可閱讀性;如何防止過度編輯造成的文章信息失實等等問題。
為了應(yīng)對上述困難,高效可行之策略包括運用AI技術(shù)進(jìn)行自然語言處理,確保內(nèi)容的自然流暢與易讀;此外,也應(yīng)強(qiáng)化采編源頭的篩選與評估機(jī)制,精選優(yōu)質(zhì)資源加以收集,從根本上保障內(nèi)容品質(zhì)及原創(chuàng)性。
總結(jié)
對蘋果CMS采集與偽原創(chuàng)的研究表明,偽原創(chuàng)并非難事,只需掌握相應(yīng)策略及技能便可勝任。關(guān)鍵在于了解采集機(jī)理,精確設(shè)置采集規(guī)則,利用內(nèi)容處理插件,輔以人工編輯及持續(xù)改善,以提升文章質(zhì)量與獨特性。堅信在不久未來,我們將更易于創(chuàng)造出高品質(zhì)的偽原創(chuàng)內(nèi)容,以滿足用戶對于優(yōu)質(zhì)內(nèi)容服務(wù)需求。
關(guān)于此議題,我邀請您參與思考:您如何看待偽原創(chuàng)對內(nèi)容創(chuàng)新所產(chǎn)生的影響?期待您的寶貴意見!
coding=utf-8
import urllib2
import re
import os
#this function from internet @littlebai
#去掉特征字符串內(nèi)的html操作符
def filter_tags(htmlstr):
re_cdata=re.compile('//<!\[CDATA\[[^>]*//\]\]>',re.I) #匹配CDATA
re_script=re.compile('<\s*script[^>]*>[^<]*<\s*/\s*script\s*>',re.I)#Script
re_style=re.compile('<\s*style[^>]*>[^<]*<\s*/\s*style\s*>',re.I)#style
re_p=re.compile('<P\s*?/?>')#處理換行
re_h=re.compile('</?\w+[^>]*>')#HTML標(biāo)簽
re_comment=re.compile('<!--[^>]*-->')#HTML注釋
s=re_cdata.sub('',htmlstr)#去掉CDATA
s=re_script.sub('',s) #去掉SCRIPT
s=re_style.sub('',s)#去掉style
s=re_p.sub('\r\n',s)#將<p>轉(zhuǎn)換為換行
s=re_h.sub('',s) #去掉HTML 標(biāo)簽
s=re_comment.sub('',s)#去掉HTML注釋
blank_line=re.compile('\n+')#去掉多余的空行
s=blank_line.sub('\n',s)
return s
#設(shè)置下載文件的保存位置
path = "E:\news.qq.com\a\20120506\"
#匹配url規(guī)則
rege = re.compile(r"/a/\d{8}/\d{6}.htm")
#從主頁獲得所有存在的url鏈接的后半部分并排序
urlcontent = urllib2.urlopen('http://news.qq.com/a/20120506/index.htm').read()
get_url = rege.findall(urlcontent)
get_url.sort()
#根據(jù)所獲得的url數(shù)量建立循環(huán)遍歷所有url鏈接
for i in xrange(0,len(get_url)):
get_url[i] = "http://news.qq.com"+get_url[i]#完整鏈接
#異常處理:部分url鏈接打開延時或者無法打開則跳過此次循環(huán)
try:#異常跳出
sub_web = urllib2.urlopen(get_url[i]).read()#打開完整url鏈接,獲取內(nèi)容
except urllib2.URLError, e:
print get_url[i][-10:-4]+' Failed'
continue
#下面開始內(nèi)容操作
re_keyt = "<h1>.+</h1>"#獲取標(biāo)題,此處的標(biāo)題不含騰訊新聞的后綴比較方便
title = re.findall(re_keyt,sub_web)#去掉標(biāo)題左右的html標(biāo)簽
re_keyc = re.compile("<div id=\"Cnt-Main-Article-QQ\".*</P></div>\n</div>",re.DOTALL)#匹配正文內(nèi)容的正則(個別頁面無法獲得,見if塊)
content = re_keyc.findall(sub_web)#獲得正文內(nèi)容
#個別頁面由于有視頻或其他的無法匹配正文內(nèi)容的正則表達(dá)式,所以無法獲得內(nèi)容,應(yīng)給與過濾
if len(title)==0 or len(content)==0:
continue
re_content = filter_tags(title[0]+"\r\n"+content[0])#將標(biāo)題和正文放到一起并去除html標(biāo)簽代碼
w=file(path+get_url[i][-10:-4]+'.txt','w')#根據(jù)頁面的文件名建立txt文件,并打開為寫入方式
w.write(re_content)#寫入獲得的去除了html標(biāo)簽代碼的標(biāo)題和正文
w.close()#關(guān)閉文件
#命令行輸出提示文件下載進(jìn)度
print 'Completed the'+str(i+1)+" -Total "+str(len(get_url))+" THE "+get_url[i][-10:]
#完成所有url鏈接的下載
print "Fuck The Stupied Guy!!!!"
#退出腳本
exit()
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。