我正在爬行slideshare.net图,从我的节点开始,跟踪BFS中的所有用户,直到访问的节点数为1000。我按以下方式执行BFS:
from urllib.request import urlopen
from collections import deque
import sys
import json
import codecs
import csv
import io
import hashlib
import time
import xml.etree.ElementTree as etree
queue = deque(["himanshutyagi11"])
while len_visitedset < 1ooo:
vertex = queue.pop()
if vertex in visited:
continue
visited.add(vertex)
length_visited = len(visited)
print(vertex,length_visited)
crawl(vertex)
Run Code Online (Sandbox Code Playgroud)
crawl() 是一个函数,我在其中进行幻灯片 api 查询,如此处所述, 使用我的shared_secret 和 api_key(在 api 注册时给出)创建查询有效负载,发送查询并解析存储在变量“response”中的 XML 响应'。解析后,我将当前节点的联系人添加到队列中。
request_timestamp = int(time.time())
request_hash_string = shared_secret+str(request_timestamp)
request_hash_value = hashlib.sha1(request_hash_string.encode('utf-8')).hexdigest()
request_url = 'https://www.slideshare.net/api/2/get_user_contacts?username_for='+username+'&api_key='+api_key+'&hash='+request_hash_value+'&ts='+str(request_timestamp)
response = etree.parse(urlopen(request_url)).getroot()
# Append all the adjacent …Run Code Online (Sandbox Code Playgroud)