import requests,time
from lxml import etree
from pymongo import MongoClient
def requestGet(url):
r = requests.get(url, headers=headers)
html = r.text
select = etree.HTML(html)
return select
def get_fens_info(url,fens_count):
try:
# select = requestGet(url)
fens_page = int(fens_count)//9+1 if int(fens_count)%9 == 0 else int(fens_count)//9+2
print(fens_page)
#粉絲數(shù)只有前100頁有數(shù)據(jù)
for page in range(1,100):
print(page)
select = requestGet(url+'?page={}'.format(page))
infos = select.xpath('//div[@id="list-container"]//div[@class="info"]')
for info in infos:
name = info.xpath('a/text()')[0]
text = info.xpath('div/text()')
print(name,text)
post_data = {
'name' : name,
'text' : text
}
#存放粉絲信息到表里
result = posts.insert_one(post_data)
except Exception as e:
print('get_fens_info函數(shù)解析錯誤 錯誤為:',e)
#獲取簡書推薦作者的名字和url地址
def get_recommend_author_name():
try:
page_index = 1
while True:
select = requestGet(base_url + str(page_index))
infos = select.xpath('//div[@class="wrap"][position()>0]')
# print(len(infos))
print(page_index)
if len(infos) != 0:
page_index += 1
for info in infos:
name = info.xpath('a/h4/text()')[0]
print(name)
url = jianshu + info.xpath('a/@href')[0]
get_recommend_author_info(name, url)
else:
break
except Exception as e:
print("get_recommend_author_name函數(shù)解析錯誤 錯誤為 ", e)
#獲取作者的粉絲數(shù)和關(guān)注數(shù)等信息
def get_recommend_author_info(name,url):
try:
select = requestGet(url)
infos = select.xpath('//div[@class="meta-block"][position()>0]')
# print(len(infos))
guanzhu_count = infos[0].xpath('a/p/text()')[0]
# guanzhu_url = jianshu + infos[0].xpath('a/@href')[0]
fensi_count = infos[1].xpath('a/p/text()')[0]
fensi_url = jianshu + infos[1].xpath('a/@href')[0]
wenzhang_count = infos[2].xpath('a/p/text()')[0]
zishu_count = infos[3].xpath('p/text()')[0]
xihuan_count = infos[4].xpath('p/text()')[0]
# print(guanzhu_url, fensi_url)
print(guanzhu_count, fensi_count, wenzhang_count, zishu_count, xihuan_count)
get_fens_info(fensi_url,fensi_count)
return True
except Exception as e:
print('get_recommend_author_info函數(shù)解析錯誤 錯誤為:',e)
if __name__ == "__main__":
jianshu = 'http://www.reibang.com'
user_agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'
headers = {
'User-Agent': user_agent
}
base_url = 'http://www.reibang.com/recommendations/users?page='
start = time.time()
client = MongoClient()
# 使用上面的代碼片段卫键,將建立連接到默認主機(localhost)和端口(27017)凿蒜。您還可以指定主機和 / 或使用端口:
client = MongoClient('localhost', 27017)
# 或者使用MongoURl格式:
# client = MongoClient('mongodb://localhost:27017')
#連接fens_db這個數(shù)據(jù)庫
db = client.fens_db
#posts表名
posts = db.posts
get_recommend_author_name()
end = time.time()
# print(UserName)
print("總耗時 %0.3f" % (end - start))
爬去簡書推薦作者的粉絲信息保存到mongodb數(shù)據(jù)庫
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門歹嘹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人孔庭,你說我怎么就攤上這事尺上。” “怎么了圆到?”我有些...
- 文/不壞的土叔 我叫張陵怎抛,是天一觀的道長。 經(jīng)常有香客問我芽淡,道長抽诉,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任吐绵,我火速辦了婚禮迹淌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘己单。我一直安慰自己唉窃,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布纹笼。 她就那樣靜靜地躺著纹份,像睡著了一般。 火紅的嫁衣襯著肌膚如雪廷痘。 梳的紋絲不亂的頭發(fā)上蔓涧,一...
- 文/蒼蘭香墨 我猛地睜開眼枢冤,長吁一口氣:“原來是場噩夢啊……” “哼鸠姨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起淹真,我...
- 正文 年R本政府宣布,位于F島的核電站杆故,受9級特大地震影響迅箩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜处铛,卻給世界環(huán)境...
- 文/蒙蒙 一饲趋、第九天 我趴在偏房一處隱蔽的房頂上張望拐揭。 院中可真熱鬧,春花似錦奕塑、人聲如沸堂污。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽盟猖。三九已至,卻和暖如春换棚,著一層夾襖步出監(jiān)牢的瞬間式镐,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 我想和你一起生活 作者:茨維塔耶娃翻譯:陳黎 張芬齡 ……我想和你一起生活在某個小鎮(zhèn)狸捅,共享無盡的黃昏和綿綿不絕的鐘...