鱼C论坛

 找回密码
 立即注册
查看: 2077|回复: 8

[原创] 代理IP爬虫

[复制链接]
发表于 2020-8-4 12:37:51 | 显示全部楼层 |阅读模式

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

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

x
最近爬的太猖獗了 封IP封了N次

所以就写了这个爬虫 希望能帮到大家
废话少说 上代码
  1. import requests
  2. import parsel
  3. import time

  4. demo_url = str(input('请输入要测试的网站>>>'))
  5. start_demo_page = int(input('请输入要测试的起始页数>>>'))
  6. end_demo_page = int(input('请输入要测试的末尾页数>>>'))



  7. #base_url = 'https://www.kuaidaili.com/free/inha/1/'

  8. headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'}

  9. def check_ip(proxies_dict):
  10.     headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'}


  11.     can_use = []
  12.     for ip in proxies_dict:
  13.         try:
  14.             response = requests.get(url=demo_url,headers=headers,IP_list=ip,timeout = 0.1)
  15.             if response.status_code == 200:
  16.                 can_use.append(ip)

  17.         except Exception:
  18.             print('当前代理ip:',ip,'请求超时,质量不合格')
  19.         finally:
  20.             print('当前代理ip:',ip,'检测通过')
  21.             can_use.append(ip)

  22.     return can_use




  23. proxies_list = []

  24. for page in range(start_demo_page,end_demo_page+1):

  25.     base_url = 'https://www.kuaidaili.com/free/inha/{}/'.format(page)
  26.     print('############正在下载第{}页数据############'.format(page))
  27.     if page>1:
  28.         print('休息一下')
  29.         time.sleep(1)

  30.     html_data = requests.get(url=base_url,headers=headers).text
  31.     selector = parsel.Selector(html_data)


  32.     result_list = selector.xpath('//tbody/tr')

  33.     for sel in result_list:
  34.         IP = sel.xpath('./td[@data-title="IP"]/text()').extract_first()
  35.         Type = sel.xpath('./td[@data-title="类型"]/text()').extract_first()
  36.         PORT = sel.xpath('./td[@data-title="PORT"]/text()').extract_first()


  37.         proxies_dict = {}
  38.         proxies_dict[Type] = IP + ":" + PORT
  39.         print('保存成功:',proxies_dict)
  40.         proxies_list.append(proxies_dict)

  41. print(proxies_list)
  42. print('获取到的IP数量:',len(proxies_list))

  43. print('############正在检测ip质量############')
  44. can_use = check_ip(proxies_list)
  45. print('质量高:',can_use)
  46. print('数量:',len(can_use))

  47. for ip in can_use:

  48.     with open('data.csv',mode='a+',encoding='utf-8') as f:
  49.         ip_data = str(ip)
  50.         f.write(ip_data + '\n\n')


  51. print('测试完成,具体数据已写入至data.csv')
复制代码





最后 希望各位继续学习 学业有成
_C%2~9M2VVU})WXP~Y25~~D.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-13 21:54:33 | 显示全部楼层
开始报错,我才知道模块没安装,安装模块后,程序可以跑起来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-17 19:58:51 | 显示全部楼层
为什么一个质量高的ip都没有呢orz
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-18 11:15:51 | 显示全部楼层
hhhhhhy 发表于 2020-8-17 19:58
为什么一个质量高的ip都没有呢orz

看你测试的是哪个网站了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-20 21:00:28 | 显示全部楼层
风尘岁月 发表于 2020-8-18 11:15
看你测试的是哪个网站了

试了好几个网站都不行……求大佬指个合适的网站orz
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-20 21:01:22 | 显示全部楼层
hhhhhhy 发表于 2020-8-20 21:00
试了好几个网站都不行……求大佬指个合适的网站orz

https://www.baidu.com
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-20 21:02:00 | 显示全部楼层

喵喵喵 好的感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-23 15:23:12 | 显示全部楼层
感谢分享!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-22 21:13:38 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 12:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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