这么多ip? 你想用哪个?

爱必应

今天分享一个爬虫, 用快代{过}{滤}理的ip爬取快代{过}{滤}理的免费ip。
看样子是用人家的砖头砸人家的脚, 其实最后发现砸了自己的脚。
爬了不到100页就被人家发现了。

[Python] 纯文本查看 复制代码

""" 爬取快代{过}{滤}理免费 ip 第一页:https://www.kuaidaili.com/free/intr/ 第二页:https://www.kuaidaili.com/free/intr/2/ 最后一页:https://www.kuaidaili.com/free/intr/3328/"""import requestsfrom lxml import etreeimport jsonclass quit_proxies( ): def __init__(self): self.headers = headers = { "user-agent": "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Mobile Safari/537.36", } self.url = "https://www.kuaidaili.com/free/intr/" self.max_page = 1 self.max_page_get = False self.proxies = { "http":"202.101.96.154:8888" } # 获取网页数据 def get_url(self,num ): return requests.get( url= self.url+"{}/".format( str( num )), headers = self.headers, proxies = self.proxies).content.decode() # 处理列表保存,保存爬取数据 def save_content(self, data, num): save_data = [] # print("data: ",data) if len(data): for index in range(0, len( data),7 ): item = [] try: for i in range(7): item.append( data[ index + i ]) except Exception as e: print(e) save_data.append(item ) # print("save_data" ,save_data) with open( "file/007/快代{过}{滤}理第{}页".format(num), "w", encoding="utf-8") as f: json.dump( save_data,f, indent=2, ensure_ascii=False ) # 处理html def process_html(self, html): html_str = etree.HTML( html ) if not self.max_page_get: self.max_page = int( html_str.xpath("//*[@id='listnav']/ul/li[8]/a/text()")[0] ) self.max_page_get = True return html_str.xpath("//*[@id='list']/table/tbody//td/text()") def run(self): num = 1 while self.max_page >= num : content = self.process_html( self.get_url( num ) ) # 爬取到新代{过}{滤}理修改代{过}{滤}理 if len(content): self.proxies = {content[3]:"{}:{}".format( content[0], content[1]) } self.save_content( content, num ) num += 1# 实例化obj = quit_proxies()obj.run()

声明:本站所有资源均由网友分享,如有侵权内容,请在文章下方留言,本站会立即处理。

原文链接:,转发请注明来源!

发表评论