鱼C论坛

 找回密码
 立即注册
查看: 2501|回复: 4

[已解决]异步爬取信息老是被封IP ,请问怎么操作可以降低被封的概率??

[复制链接]
发表于 2021-6-11 00:29:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想用异步爬取 www.kuaidaili.com  的免费代理ip 和一个漫画网站的所有漫画,但是每次运行程序,爬了几条之后就被封了,请问大佬要怎么调整发送频率? 这是代码

  1. async def get_ip(session,page):
  2.     #访问目标网页获取html信息
  3.     url = f'https://www.kuaidaili.com/free/inha/{page}/'
  4.     async with session.get(url) as resp:
  5.         text = await resp.text()
  6.         #解析信息
  7.         element = etree.HTML(text)
  8.         parse_list = element.xpath('//*[@id="list"]/table/tbody/tr')
  9.         ip_list = []
  10.         for parse in parse_list:
  11.             dic = {}
  12.             ip_name = parse.xpath('./td[1]/text()')[0]
  13.             port_name = parse.xpath('./td[2]/text()')[0]
  14.             tpye_name = parse.xpath('./td[4]/text()')[0]
  15.             dic[tpye_name] = ip_name + ':' + port_name
  16.             ip_list.append(dic)

  17. async def main():
  18.     async with aiohttp.ClientSession() as session:
  19.          task = [asyncio.create_task(get_ip(session,index)) for index in range(1000)]
  20.          await asyncio.wait(task)

  21. if __name__ == '__main__':
  22.     asyncio.get_event_loop().run_until_complete(main())
复制代码
最佳答案
2021-6-11 11:06:36
1、代理池。池中代理可用数量不足,则再换过可用代理
2、加延迟。不过会降低效率
3、每次爬取更换IP(代理)和浏览器UA标志是最优的办法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-11 10:58:32 | 显示全部楼层
换个好用点的代理吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-11 11:06:36 | 显示全部楼层    本楼为最佳答案   
1、代理池。池中代理可用数量不足,则再换过可用代理
2、加延迟。不过会降低效率
3、每次爬取更换IP(代理)和浏览器UA标志是最优的办法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-11 23:05:50 | 显示全部楼层
通常的方法是,用 time 库中的 time.sleep() 方法,让爬取的动作暂停,暂停的时间可以再加一个 random 库下的 randint 函数,取一个时间范围(单位:秒)

  1. import time
  2. import random

  3. '''
  4. 此处爬虫代码不做列举
  5. '''
  6. #取1到15之间的随机整数
  7. sleep_second = random.randint(1, 15)
  8. #让爬虫暂停若干秒
  9. time.sleep(sleep_second)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-13 21:42:59 | 显示全部楼层
笨鸟学飞 发表于 2021-6-11 11:06
1、代理池。池中代理可用数量不足,则再换过可用代理
2、加延迟。不过会降低效率
3、每次爬取更换IP(代 ...

谢谢指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 18:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表