本文整理匯總了Python中Crawler.Crawler.set_proxyip方法的典型用法代碼示例。如果您正苦於以下問題:Python Crawler.set_proxyip方法的具體用法?Python Crawler.set_proxyip怎麽用?Python Crawler.set_proxyip使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Crawler.Crawler
的用法示例。
在下文中一共展示了Crawler.set_proxyip方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: start
# 需要導入模塊: from Crawler import Crawler [as 別名]
# 或者: from Crawler.Crawler import set_proxyip [as 別名]
def start():
'''抓取進程開始,每次取出一個節點抓取 '''
# 初始化
mongo_peoples , redis_client = Init()
# 待抓取節點集合是否為空
while redis_client.scard(info_success_set) == 0: # 為空
# 等待 waiting_size 秒
time.sleep(wait_time)
# 從待抓取節點集合隨機(右端)取出一個節點
node = redis_client.spop(info_success_set)
urlToken = node
# 抓取節點代表用戶的個人主頁
# printx('準備代理……')
printx('正在抓取用戶 %s 的個人信息……'%urlToken)
try_cnt = try_limit
while try_cnt > 0:
try:
c = Crawler(isCookie=False,timeout=socket_timeout)
# 手動設置代理IP
ip = proxyip.get()
c.set_proxyip(ip)
people = get_Info(c,urlToken)
if people==None:
raise Exception,'抓取的用戶信息為空'
except Exception,e:
try_cnt -= 1
print e
printx('用戶 %s 個人信息抓取出錯,還可以嘗試抓取 %d 次'%(urlToken,try_cnt))
else:
break
示例2: get_per_followerList
# 需要導入模塊: from Crawler import Crawler [as 別名]
# 或者: from Crawler.Crawler import set_proxyip [as 別名]
def get_per_followerList(urlToken,page,sum_page):
''' 抓取 follower 列表的每一頁'''
printx('正在抓取第 %d/%d 頁……'%(page,sum_page))
try_cnt = try_limit
follower_list = []
while try_cnt > 0:
try:
# 設置抓取器
c = Crawler(isCookie=False,timeout=socket_timeout)
# 手動設置代理IP
ip = proxyip.get()
c.set_proxyip(ip)
# 解析當前頁的 html
url = '%s/people/%s/followers?page=%d'%(host,urlToken,page)
html = c.get_html(url)
s = BS(html,'html.parser')
# 獲得當前頁的所有關注用戶
data = s.find('div',attrs={'id':'data'})['data-state']
data = json.loads(data)
items = data['people']['followersByUser'][urlToken]['ids']
for item in items:
if item!=None and item!=False and item!=True and item!='知乎用戶'.decode('utf8'):
node = item.encode('utf8')
follower_list.append(node)
except Exception,e:
try_cnt -= 1
#printx(e)
printx('用戶 %s 第 %d 頁抓取出錯,還可以嘗試抓取 %d 次'%(urlToken,page,try_cnt))
else:
break