爬了點知乎資料,看看知乎都問啥。。

2021-07-14 15:27:16 字數 2013 閱讀 9441

爬了知乎500w+的問題,估計不到問題總量的一半。

在這先看下大家都喜歡怎麼提問。

以下根據頻數排序,從高到低。

## 句首兩字索引

如何 ##目前有意推出 『如何』 這款類知乎產品,只差乙個美工&乙個前端&乙個後台 or 全棧

為什 ##應該是: 為什麼

怎麼怎樣

如果請問

有哪 ##哪些、哪種

中國 ##

乙個 ##這個查了下sql,後面跟的東西啥都有。。』個『 這個量詞挺通用的。。有沒

## 句首三字索引

為什麼如何評

如何看有哪些

有沒有有什麼

如何在201 ##應該為日期 。如 2023年我能脫單嗎。。。。。。。

男朋友 ##這個。。。確實沒想到

怎麼看

## 句首四字索引

如何評價

如何看待

為什麼有

為什麼我

為什麼很

為什麼人

怎麼看待

怎樣才能

為什麼在

如何理解

以我初中開始語文就不及格的水平來看。。

以 '如何' 開頭的提問,可能更想獲得是一種方法、結果,或者是一些主觀的意識(如何評價***)。這想要的是現成的結果。

下面要做的就是繼續爬點問題,看能不能把所有問題分為三大類:我是誰,我從哪來,我到哪去。。

#coding=utf-8

import re

import mysqldb

#import gevent

from numpy import *

#from gevent.threadpool import threadpool##資料不多所以就沒用併發

#class self_var:

#def __init__():

def get_data():

conn=mysqldb.connect(

host='localhost',

port=3306,

user='root',

passwd='1234',

db='zhihu',

charset='utf8'

)cur=conn.cursor()

cmd='select q from question'

cur.execute(cmd)

data=cur.fetchall()

return data

def create_vocabulary(data):

vocabulary={}

for i in data:

w=i[0][:4]

vocabulary[w]=vocabulary.get(w,0)+1##感覺最有用的就是這一行

return vocabulary

def store_data(file_name,data):#儲存結果用

import pickle

op=open(file_name,'w')

pickle.dump(data,op)

op.close()

def extract_data(file_name):#提取儲存的資料

import pickle

read_file=open(file_name)

return pickle.load(read_file)

def test():

from time import *

data=get_data()

time1=time()

vocabulary=create_vocabulary(data)

s=sorted(vocabulary.items(),key=lambda d:d[1],reverse=true)

for i in s[:10]:

print i[0]

time2=time()

print 'done',time2-time1

test()

爬去知乎分析

目前還在進行階段 我的目的是爬去知乎熱榜五十的回答,分為只爬去靜態返回的頁面和爬去非同步返回的資料。首先開始查詢知乎前五十需要登入,但是我並不想處理登入。分析一波 先用瀏覽器登入一下進去,記住密碼,之後再進入頁面知乎就可以,這是為什麼?猜想可能是將密碼儲存在cookie裡面的,於是f12在cooki...

知乎資料爬取及儲存

import requests from pymysql conn import mysql connect url 分析所有請求後發現上面的url可以直接獲取所需資料的json檔案,兩個引數分 別為offset,limit。其中offset控制起始資料序號,limit控制本次資料數量 經測試off...

爬知乎了解BeautifulSoup用法

text raw input 請輸入驗證碼 encode gb18030 return text def zhihu sess requests.session 請求報頭 首先獲取登入頁面,找到需要post的資料 xsrf 同時會記錄當前網頁的cookie值 html sess.get header...