本文整理汇总了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