1+ # coding:utf-8
2+ import requests
3+ from bs4 import BeautifulSoup
4+ import time
5+
6+
7+ url = 'https://www.zhihu.com/people/mu-tong-63'
8+
9+ headers = {
10+ 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.95 Safari/537.36 Core/1.50.1414.400 QQBrowser/9.5.9244.400' # ur user-Agent here,
11+ }
12+
13+ def list_is_none_and_get_text (list ,index ):
14+ if list :
15+ return list [index ].get_text ()
16+ else :
17+ return None
18+
19+ def get_user_info (url ):
20+ data = requests .get (url , headers = headers )
21+ soup = BeautifulSoup (data .text , 'lxml' )
22+ name = list_is_none_and_get_text (soup .select ('div > div.top > div.title-section > span' ),0 )
23+ sex = soup .select ('div > span.info-wrap > span.item.gender > i' )[0 ]['class' ][1 ].split ('-' )[2 ]
24+ address = soup .select ('span.info-wrap > span.location.item' )[0 ]['title' ]
25+ agree = list_is_none_and_get_text (soup .select ('div > span.zm-profile-header-user-agree > strong' ),0 )
26+ thanks = list_is_none_and_get_text (soup .select ('div > span.zm-profile-header-user-thanks > strong' ),0 )
27+ followees = list_is_none_and_get_text (soup .select ('div.zm-profile-side-following.zg-clear > a > strong' ),0 )
28+ followers = list_is_none_and_get_text (soup .select ('div.zm-profile-side-following.zg-clear > a > strong' ),1 )
29+ employment = list_is_none_and_get_text (soup .select ('div.items > div > span.info-wrap > span.employment.item > a' ),0 )
30+ content = list_is_none_and_get_text (soup .select ('span.info-wrap.fold-wrap.fold.disable-fold > span.fold-item > span' ),0 ).strip ('\n ' )
31+ dic = {
32+ 'name' : name ,
33+ 'sex' : sex ,
34+ 'address' : address ,
35+ 'agree' : agree ,
36+ 'thanks' : thanks ,
37+ 'followees' : followees ,
38+ 'followers' : followers ,
39+ 'employment' : employment ,
40+ 'content' : content ,
41+ }
42+ print dic
43+ return dic
44+ get_user_info (url )
0 commit comments