Exemple #1
0
def index():
    data = dict()
    nodes = common_util.readjson(config.TWITTER_NODES_FILE)
    edges = common_util.readjson(config.TWINT_EDGES_FILE)
    data['nodes'] = nodes
    data['edges'] = edges
    return render_template("graph_show.html", data=json.dumps(data))
Exemple #2
0
def socialnetindex():
    data = dict()
    nodes = common_util.readjson(config.TWITTER_NODES_FILE)
    edges = common_util.readjson(config.TWINT_EDGES_FILE)
    data['nodes'] = nodes
    data['edges'] = edges
    print(data)
    return render_template('socialnet/socialnetindex.html',
                           data=json.dumps(data))
Exemple #3
0
def main():
    '''
    @Descripttion: main function
    @param {type} 
    @return: 
    '''
    DG = nx.DiGraph()
    twitter_nodes = common_util.readjson(config.TWITTER_NODES_FILE)
    twitter_edges = common_util.readjson(config.TWITTER_EDGES_FILE)
    ids_names = get_id_name(twitter_nodes)
    get_graph(DG, twitter_nodes, twitter_edges)
    # nx.draw_networkx(DG,labels=ids_names,with_labels=True, font_weight='bold')
    # plt.show()
    # 聚集系数
    # print(nx.clustering(DG))
    # 社群 有向图未实现
    # print(list(nx.connected_components(DG)))
    id_degrees = sorted(dict(DG.degree).items(),
                        key=lambda x: x[1],
                        reverse=True)
    for id_degree in id_degrees[:10]:
        print(ids_names[id_degree[0]], id_degree[1])
import twint
import twitter
import config


api = twitter.Api(consumer_key=config.CONSUMER_KEY, consumer_secret=config.CONSUMER_SECRET,
                  access_token_key=config.ACCESS_TOKEN, access_token_secret=config.ACCESS_SECRET, proxies=config.proxy)


'''Twint Config'''
c = twint.Config()
c.Proxy_host = '127.0.0.1'
c.Proxy_port = '1080'
c.Proxy_type = 'http'

names = list(common_util.readjson(config.TWINT_NODES_FILE).keys())


def get_tweet_related_china(names):
    '''
    @description: scrapy realDonaldTrump's tweets related to China and save output file
    @param {names} 
    @return: 
    '''
    for name in names:
        print(name)
        c = twint.Config()
        c.Proxy_host = '127.0.0.1'
        c.Proxy_port = '1080'
        c.Proxy_type = 'http'
        c.Username = name
Exemple #5
0
from utils import common_util


api = twitter.Api(consumer_key=config.CONSUMER_KEY, consumer_secret=config.CONSUMER_SECRET,
                  access_token_key=config.ACCESS_TOKEN, access_token_secret=config.ACCESS_SECRET, proxies=config.proxy)


'''Twint Config'''
c = twint.Config()
c.Proxy_host = '127.0.0.1'
c.Proxy_port = '1080'
c.Proxy_type = 'http'


# name_id字典
name_id = common_util.readjson(config.TWINT_NODES_FILE)
print(type(name_id))

def get_twitter_names():
    '''
    @description: get the twitter names
    @param {null} 
    @return: 
    '''
    # pandas读入
    data = pd.read_csv(config.TWITTER_NAMES_FILE, error_bad_lines=False)
    names = list(np.array(data['twitter@']))
    print(names)
    names = [name[1:] for name in names]
    return names
Exemple #6
0
def shortestpath():
    form = ShortestPathForm()
    data = dict()
    nodes = common_util.readjson(config.TWITTER_NODES_FILE)
    edges = common_util.readjson(config.TWINT_EDGES_FILE)
    data['nodes'] = nodes
    data['edges'] = edges
    G = nx.Graph()
    print(nodes)
    print(edges)
    id_id_map = {}  # 从node的id字段到这个id所在的序号
    id_num_map = {}
    data = dict()
    data_nodes = []
    data_edges = []
    path = ""
    if form.validate_on_submit():
        name1 = form.name1.data
        name2 = form.name2.data
        id1 = -1
        id2 = -1
        for i in range(0, len(nodes)):
            print(nodes[i])
            G.add_node(i)
            id_id_map[nodes[i]['id']] = i
            if nodes[i]['label'] == name1:
                id1 = nodes[i]['id']
            elif nodes[i]['label'] == name2:
                id2 = nodes[i]['id']
        for i in range(0, len(edges)):
            one = edges[i]['from']
            two = edges[i]['to']
            if one in id_id_map and two in id_id_map:
                G.add_edge(id_id_map[one], id_id_map[two])

        if nx.has_path(G, id_id_map[id1], id_id_map[id2]):
            result = nx.shortest_path(G, id_id_map[id1], id_id_map[id2])
            print(result)
            path = str(result)
            path = path + "\n"
            nametemp = nodes[result[0]]['label']
            path = path + nametemp
            data_nodes.append(nodes[result[0]])
            lastid = nodes[result[0]]['id']
            newid = -1
            for j in range(1, len(result)):
                node_num = result[j]
                name = nodes[node_num]['label']
                path = path + "->" + name
                data_nodes.append(nodes[node_num])
                newid = nodes[result[j]]['id']
                temp = {}
                temp['from'] = lastid
                temp['to'] = newid
                data_edges.append(temp)
                lastid = newid
        else:
            print("No path between " + name1 + " and " + name2)
            path = "No path between " + name1 + " and " + name2

        print(data_nodes)
        print(data_edges)
        data['nodes'] = data_nodes
        data['edges'] = data_edges
        print(data)
    return render_template('socialnet/shortestpath.html',
                           form=form,
                           path=path,
                           data=json.dumps(data))