實踐中學(xué)python:評論喜歡簡書文章

#!/usr/bin/python
# coding=utf-8
import requests
import re

# 從一個網(wǎng)頁里獲取文章id
def getArticleIDStringFromWebAtUrlString(urlString):
    return getIDStringFromWebAtUrlString(urlString, '<a class="title" target="_blank" href="/p/(.*?)">')

# 從一個網(wǎng)頁里獲取專題id
def getTopicIDStringFromWebAtUrlString(urlString):
    return getIDStringFromWebAtUrlString(urlString,'<a class="collection-tag" target="_blank" href="/c/(.*?)">')

# 從一個網(wǎng)頁里按正則獲取對應(yīng)的字符串集合
def getIDStringFromWebAtUrlString(urlString,regString):
    html = requests.get(urlString)
    commentsIDStrings = re.findall(regString,html.text,re.S)
    return commentsIDStrings

# 從文章網(wǎng)頁里拿到評論的id
def getComentsIDStringFromArticleUrlString(urlString):
    html = requests.get(urlString)
    commentsIDStrings = re.findall('data-note-id="(.*?)">',html.text,re.S)
    return commentsIDStrings[0]

# 從文章網(wǎng)頁里拿到文章id
def getArticleIDStringFromArticleUrlString(urlString):
    prefixStr = 'http://www.reibang.com/p/'
    if prefixStr in urlString:
        articleIDString = urlString.replace(prefixStr, '')
        return articleIDString
    return 'this is not a articleUrlString'

# 評論一篇文章,文章地址痹雅,評論的內(nèi)容
def commentArticle(articleUrlString, commentString):
    cookieString = 'remember_user_token=W1sxOTI1NjJdLCIkMmEkMTAkeUdIRkRGdFN4L0RpZldKV3lKalR6ZSIsIjE1MDMzMjY2NTMuODY3NTI3Il0%3D--7255eb9eb5c5465a41781ef8e5772b10e1b2d72e; _ga=GA1.2.714896647.1497170140; _gid=GA1.2.462532388.1503150885; Hm_lvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1503323642,1503323726,1503325746,1503326272; Hm_lpvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1503326790; _session_id=ZkhpL1IzRzA4bEs2dTZRRlhSTlVaQ3JFMWQ0enc4akxtSjh1dlUrSlpCUGpJZGltZG42UDdDMmtodllJbkovZFZ1eEkxVlNjZDUzVG1RdVc1cysyQUZTVUxFZFBUUC9zL3dIZjNVdFJVeERsZWpET2NRK0J3dHFnN21xRkE3QlFuYlBPU1RZc09xTXFJRlBFNGwrU1U3Q0gzQnpTRnNmZXVvNmR1dzJOZ2J0MU5KMkQ4cnd5OTlpYlIyZXRyb21rdjBMeE9xS1lPWGRSL2t0UXlyeDN2bml2TWNwMDF4akpGSkVQaW5iSXBDdWJCNUxrZEJ3dGJDZUhnOU50a2wyV2N2b3g0dXkvd0M5VWkzNTh6eUtPRUdTZUJuUHo2REg1dXhqeGpNOExubm40enU5U3BPNG1xdnlOK0dxYTJFeU5GZVQ3OTlFTW1GdndUS043T0N6QlpGczY4VFJCYW5QTDlxUzRMOGJYN3RyeU05N2cvS0lDWDNidVJZNkgwbmF3aHVMY083TWgrc2RsRHRYVDBjYjIwZVJTdXRHc21MWnk4Z0I3VFdMWHNmOD0tLU8zaHdXcEFUZjNaLzVINWpIdUZnK0E9PQ%3D%3D--4ff5e23579bb725201c91a9bfa6d7bb5975bd076'
    ArticleIDString = getArticleIDStringFromArticleUrlString(articleUrlString)
    noteIDString = getComentsIDStringFromArticleUrlString(articleUrlString)
    data = {"content": commentString}
    #header
    headers = {'Host':'www.reibang.com',
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',
    'Accept':'application/json',
    'Accept-Language':'zh-CN,zh;q=0.8',
    'Content-Type':'application/json',
    'Cookie':cookieString,
    'Referer':'http://www.reibang.com/p/%s'%ArticleIDString,
    'Origin':'http://www.reibang.com',
    'Connection':'keep-alive',
    'Accept-Encoding':'gzip, deflate',
    'DNT':'1'}
    response = requests.post(url='http://www.reibang.com/notes/%s/comments'%noteIDString,headers=headers,json=data)
    print response.status_code, response.reason

# 喜歡一個專題里的文章
def likeTopic(topicUrlString):
    articleIDStrings = getArticleIDStringFromWebAtUrlString(topicUrlString)
    for articleIDString in articleIDStrings:
# 喜歡一個文章跟評論一個文章類似的寫法
        likeArticle(articleIDString)


# 喜歡一文章
def likeArticle(articleUrlString):
    cookieString = 'remember_user_token=W1sxOTI1NjJdLCIkMmEkMTAkeUdIRkRGdFN4L0RpZldKV3lKalR6ZSIsIjE1MDMzMjY2NTMuODY3NTI3Il0%3D--7255eb9eb5c5465a41781ef8e5772b10e1b2d72e; _ga=GA1.2.714896647.1497170140; _gid=GA1.2.462532388.1503150885; Hm_lvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1503323642,1503323726,1503325746,1503326272; Hm_lpvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1503326790; _session_id=ZkhpL1IzRzA4bEs2dTZRRlhSTlVaQ3JFMWQ0enc4akxtSjh1dlUrSlpCUGpJZGltZG42UDdDMmtodllJbkovZFZ1eEkxVlNjZDUzVG1RdVc1cysyQUZTVUxFZFBUUC9zL3dIZjNVdFJVeERsZWpET2NRK0J3dHFnN21xRkE3QlFuYlBPU1RZc09xTXFJRlBFNGwrU1U3Q0gzQnpTRnNmZXVvNmR1dzJOZ2J0MU5KMkQ4cnd5OTlpYlIyZXRyb21rdjBMeE9xS1lPWGRSL2t0UXlyeDN2bml2TWNwMDF4akpGSkVQaW5iSXBDdWJCNUxrZEJ3dGJDZUhnOU50a2wyV2N2b3g0dXkvd0M5VWkzNTh6eUtPRUdTZUJuUHo2REg1dXhqeGpNOExubm40enU5U3BPNG1xdnlOK0dxYTJFeU5GZVQ3OTlFTW1GdndUS043T0N6QlpGczY4VFJCYW5QTDlxUzRMOGJYN3RyeU05N2cvS0lDWDNidVJZNkgwbmF3aHVMY083TWgrc2RsRHRYVDBjYjIwZVJTdXRHc21MWnk4Z0I3VFdMWHNmOD0tLU8zaHdXcEFUZjNaLzVINWpIdUZnK0E9PQ%3D%3D--4ff5e23579bb725201c91a9bfa6d7bb5975bd076'
    prefixStr = 'http://www.reibang.com/p/'
    if prefixStr not in articleUrlString:
        articleUrlString = prefixStr+articleUrlString
    noteIDString = getComentsIDStringFromArticleUrlString(articleUrlString)
    data = {}
    headers = {'Host':'www.reibang.com',
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',
    'Accept':'application/json',
    'Accept-Language':'zh-CN,zh;q=0.8',
    'Content-Type':'application/json',
    'Cookie':cookieString,
    'Referer':articleUrlString,
    'Origin':'http://www.reibang.com',
    'Connection':'keep-alive',
    'Accept-Encoding':'gzip, deflate',
    'DNT':'1'}
    response = requests.post(url='http://www.reibang.com/notes/%s/like'%noteIDString,headers=headers,json=data)
    print response.status_code, response.reason

按上面我們會遇到一個問題仰担,就是拿不到一個用戶的所有文章,一個專題的所有文章,解決方案:離線網(wǎng)頁摔蓝,再抓取網(wǎng)頁源碼


# 從本地一個html文件中解析出文章的id
def getArticalIDStringFromLocalHtmlFile(localHtmlFilePath):
    with open(r'%s'%localHtmlFilePath, "r") as f:
        page = f.read()
    commentsIDStrings = re.findall('<a class="title" target="_blank" href="http://www.reibang.com/p/(.*?)">',page,re.S)
    return commentsIDStrings

# 這里我們可以開始調(diào)用了赂苗,這里要寫全路徑 不能寫 ~/Desktop
articalIDStrings = getArticalIDStringFromLocalHtmlFile('/Users/mac/Desktop/test.htm')
for articalIDString in articalIDStrings:
    likeArticle(articalIDString)

小弟新手請大神們賜教

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市贮尉,隨后出現(xiàn)的幾起案子拌滋,更是在濱河造成了極大的恐慌,老刑警劉巖猜谚,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件败砂,死亡現(xiàn)場離奇詭異,居然都是意外死亡魏铅,警方通過查閱死者的電腦和手機昌犹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來览芳,“玉大人斜姥,你說我怎么就攤上這事〔拙梗” “怎么了铸敏?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長悟泵。 經(jīng)常有香客問我杈笔,道長,這世上最難降的妖魔是什么魁袜? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮敦第,結(jié)果婚禮上峰弹,老公的妹妹穿的比我還像新娘。我一直安慰自己芜果,他們只是感情好鞠呈,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著右钾,像睡著了一般蚁吝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上舀射,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天窘茁,我揣著相機與錄音,去河邊找鬼脆烟。 笑死山林,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的邢羔。 我是一名探鬼主播驼抹,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼桑孩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了框冀?” 一聲冷哼從身側(cè)響起流椒,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎明也,沒想到半個月后宣虾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡诡右,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年安岂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帆吻。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡域那,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出猜煮,到底是詐尸還是另有隱情次员,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布王带,位于F島的核電站淑蔚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏愕撰。R本人自食惡果不足惜刹衫,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搞挣。 院中可真熱鬧带迟,春花似錦、人聲如沸囱桨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舍肠。三九已至搀继,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間翠语,已是汗流浹背叽躯。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肌括,地道東北人险毁。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親畔况。 傳聞我的和親對象是個殘疾皇子鲸鹦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容