html获取当前ip_前天,爬取某网站导致IP被封后,我干了这件事……

news/2024/5/20 14:21:57/文章来源:https://blog.csdn.net/weixin_39605345/article/details/111250633
17fdb0fa448854309f9a1319a74220b1.gif

-点击蓝字关注我们

2e1d47bbd67865d03fc262dbae64b1e5.png人生苦短,我用Python前天,本人在爬取某网站时,第一次遇到IP被封的情况,等了几个小时之后,还是不行。最后,迫于无奈,还是请出了大招,使用代理IP。今天,闲来无事,本人爬取了快代理网站上 5 万多条免费高匿名代理IP。首先,我们进入网站免费代理页面,可以看到该网站目前共有免费代理IP 3482 页。免费代理IP首页的url地址为:https://www.kuaidaili.com/free/inha/。c1528b29fa0281f856f6493aeb9a73f6.png你可能会疑惑,我们的目标是爬取三千多页的代理IP信息,上面只提到了首页的url地址,如何知道其余页面的url地址呢?这时,不用着急,我们再点开第二页,可以看到第二页的url地址为https://www.kuaidaili.com/free/inha/2/,仔细观察就会发现,该url地址结尾有一个数字 2 ,你可能会想,第三页会不会就是3呢?事实上,正是如此,后面的以此类推……f7bebe86da3dabe2293e2f890ae559b9.png这样,从第 2 页至最后一页的url地址所符合的规律我们已经找到了。其实,这种情况是很常见的,而且,首页url地址也可以是这样的,即url地址https://www.kuaidaili.com/free/inha/1/和https://www.kuaidaili.com/free/inha/对应的是同一页面。知道了这一点,我们就可以使用format()方法轻松写出每一页的url地址,代码如下:
1url = 'https://www.kuaidaili.com/free/inha/{}/'.format(str(i))
好了,上面重要的问题已经分析完了,下面我们开始分析页面内容并尝试爬取所需信息。我们的目标是爬取每一页表格内的所有内容,下面以第一页内容为例分析。跟之前一样,我们先右键检查,可以看到如下页面:cb6ddd04803033dfd5e17f8fd0ce48e6.png通过观察发现,可以使用正则表达式re模块的findall()方法匹配相关信息,下面我们开始编写程序。首先,我们需要导入所需的库,代码如下:
1# 导入相关模块库2import requests3import re4import os5import time
下面我们尝试编写一个函数,用于匹配单个免费代理页面的所有信息。
 1def get_ipinfo(url): 2    '''定义一个函数,用于获取单个页面的IP代理信息''' 3    r = requests.get(url, headers={'user-agent':'Mozilla/5.0'}) # 获取网页内容 4    html = r.text # 获取http响应内容的字符串形式 5 6    # 利用正则表达式匹配IP、PORT、匿名度、类型、位置、响应速度、最后验证时间信息 7    ip = re.findall('((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))', html) # 匹配IP信息 8    port = re.findall('(\d+)', html) # 匹配端口号信息 9    anonymity = re.findall('([\u4e00-\u9fa5]+)', html) # 匹配匿名度信息10    genre = re.findall('(.+)', html) # 匹配类型信息11    position = re.findall('([\u4e00-\u9fa5 ]+)', html) # 匹配位置信息12    speed = re.findall('(.+)', html) # 匹配响应速度信息13    time = re.findall('(.+)', html) # 匹配验证时间信息1415    ipinfo = zip(ip, port, anonymity, genre, position, speed, time) # 将本页面匹配信息压缩,写入csv文件16    return ipinfo
匹配到信息之后,就需要将该页信息写入到一个csv文件中,下面我们将通过编写一个函数实现该功能,代码如下:
 1def write_ipinfo(ipinfo, page): 2    '''定义一个函数,将IP代理信息写入到指定的csv文件中''' 3    path = 'C:\\Users\\Lenovo\\Desktop\\IP代理' # 待写入文件存储目录 4    if not os.path.exists(path): # 判断桌面是否有名称为“IP代理”的文件夹,如果没有,就创建它 5        os.mkdir(path) 6 7    # 将匹配信息写入csv文件 8    with open(path + '//代理IP.csv', 'a' ,newline='') as f: 9        writer = csv.writer(f)10        if page == 1:11            writer.writerow(['IP', 'PORT', '匿名度', '类型', '位置', '响应速度', '最后验证时间']) # 写入表头信息12        writer.writerows(ipinfo) # 写入单个页面匹配信息
通过上述两个函数,我们已经能够实现对某个页面信息的爬取和保存,下面只需要遍历每一页的url地址就可以爬取所有页面的免费代理IP信息,代码如下:
1if __name__ == '__main__':2    for page in range(3482):3        url = 'https://www.kuaidaili.com/free/inha/{}/'.format(str(page+1))4        ipinfo = get_ipinfo(url)5        write_ipinfo(ipinfo, page+1)6        time.sleep(1)
好了,利用上述程序,我们已经实现了免费代理IP的爬取工作,共计爬取代理IP信息 5万多条,下面是爬取的部分内容:36e86ba75e56541f80fa96fc2e1a4055.png好了,以上就是本期内容,谢谢您的阅读!觉得不错?支持一下呗!往期推荐:Python抓取2020校友会中国工业大学排名Python抓取守望先锋所有英雄图片Python爬取网络图片详解

ea4fa482221feb39872ef945e372051d.gif

作者 | 绿皮长条瓜编辑 | 绿皮长条瓜QQ交流群 | 1073029712我就知道你在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_763991.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web前端 知识点图 来源 http://www.aseoe.com/show-41-582-1.html

转载于:https://www.cnblogs.com/joycefan311/p/5655335.html

网站缓存

网站技术高速发展的今天,缓存技术已经成为大型网站的一个关键技术,缓存设计好坏直接关系的一个网站访问的速度,以及购置服务器的数量,甚至影响到用户的体验。 网站缓存按照存放的地点不同,可以分为客户端缓存、服务端缓…

编写Google插件,实现自定义现有网站内容

背景:公司项目做完的空档时期,总是很无聊,总不能总是在看技术文档吧,总也要放松下吧,比如看看网络小说(Ps:网络上大部分小说网站都是有广告的,并且广告屏蔽有时还不能完全屏蔽掉,而且网站的样式一看就跟技术论坛技术博文之类的站点不一样的,这个时候要怎么伪装自己在…

网站权限配置管理

今天 一上班 就收到bug的提示,经由查看原来是 权限划分问题; 问题描述:管理员 登陆系统后 发现没有权限编辑 ,我查看代码后发现 已经开发了 是否有权限编辑功能;我登陆大权限账号后 发现这个管理的编辑权限没有开启&a…

网站中三角小图标的制作方法

除了之前随笔中提到的使用图标文字来解决网站中的小图标的问题&#xff0c;还可以手写网站中的小图标&#xff0c;这主要使用到定位的相关知识就可以轻松搞定。 具体代码如下所示&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta cha…

新闻网站项目django--个人资料页

models.py: # 用户信息表 class UserProfile(models.Model):belong_to models.OneToOneField(toUser, related_name"profile") # 所属用户avatar models.FileField(upload_toavatar) # 用户头像def __str__(self):return self.belong_to.usernameforms.py&#x…

seo学习1

第一天一&#xff0c;SEO概念&#xff1a;搜索引擎优化 二&#xff0c;SEO和SEM区别&#xff1a;SEO(自然排名)&#xff0c;点击不需要付费。SEM(竞价&#xff0c;百度广告位5个),点击付费&#xff0c;排名不稳定。 SEO不能马上实现排名&#xff0c;优化周期大概三到四个月。SE…

【问底】李平:大型网站的灵魂——性能(转)

在前一篇随笔 大型网站系统架构的演化中&#xff0c;介绍了大型网站的演化过程&#xff0c;期间穿插了一些技术和手段&#xff0c;我们可以从中看出一个大型网站的轮廓&#xff0c;但想要掌握设计开发维护大型网站的技术&#xff0c;需要我们一步一步去研究实践。所以我打算写一…

SEO那些事:一句代码一键分享网站

这是很久以前就已经写过的笔记了&#xff0c;有一个习惯&#xff0c;每次遇到一个问题&#xff0c;都会进行百度&#xff0c;然后把解决问题的关键点记录下来&#xff0c;有人问我&#xff0c;为什么更新频率如此之快&#xff0c;大部分都是从前积累的知识点。其实每天工作所涉…

解决宝塔面板 创建站点后 访问的站点不存在

宝塔面板域名管理 请注意对照域名填写是否有误&#xff0c;www和不带www的域名是否都已经添加到域名管理中&#xff0c;将域名填写进去即可解决问题&#xff01; 综上&#xff0c;“您的请求在Web服务器中没有找到对应的站点”错误&#xff0c;90%是由于www域名和不带www域名没…

使用 rel=alternate 移动属性优化移动网站SEO

前文介绍了 <link> 的属性 relcanonical &#xff0c;这是本文要介绍 <link> 的另一属性 relalternate 的原因&#xff0c;因为这两者有着密切的对应关系。 很多人也许会问&#xff0c;什么是 relalternate &#xff1f;我们该如何使用 relalternate &#xff1f…

网站运维之 风险防控

引言 对于网站运维是一个比较要细心有耐心的工作&#xff0c;当一个网站从开发到上线后&#xff0c;后期的维护也很关键&#xff0c;特别是对于引流的网站来说更是至关重要。 对于网站运维的内容大致可以分为&#xff1a; SEO流量监控方面&#xff1b;风险防控&#xff1b;访问…

3GPP协议文档查询网站

对于Android Telephony开发的工程师而言避免不了要接触3GPP协议&#xff0c;特别是通话和补充业务相关&#xff0c;深入了解3GPP协议&#xff0c;可以加快问题的分析和处理速度&#xff0c;本文主要介绍日常常用的3GPP协议文档查看网站。 3GPP官网. 3GPP官方网站&#xff0c;这…

在授权的情况下对某医药网站检测思路

本人菜鸟&#xff0c;作此记录仅提供思路学习&#xff0c;感谢Ghost老兄帮忙提供思路。 一、信息搜集阶段 1、使用kali 的whatweb对网站大概框架进行收集。得知80端口为asp.net 4、IIS 7.5并且得到IP 2、访问ip返回与域名相同的页面&#xff0c;确定为真实ip&#xff0c;记录下…

Bugku-网站被黑

网站被黑 http://120.24.86.145:8002/webshell/ 这个题没技术含量但是实战中经常遇到 解题思路&#xff1a; 打开链接是一个黑页&#xff0c;链接后面加index.php判断是PHP&#xff0c;而题目提示实战中经常遇到&#xff0c;那就开御剑扫描后台吧 扫描出shell.php,打开链接是一…

BugKu -- 程序员本地网站

程序员本地网站 100 http://120.24.86.145:8002/localhost/ 请从本地访问 这道题要求从本地访问&#xff0c;打开burpsuite抓包&#xff0c;加上&#xff1a;X-Forwarded-For: 127.0.0.1 就好了 X-Forwarded-For: 简称XFF头&#xff0c;它代表客户端&#xff0c;也就是HTTP的请…

树莓派大用处,利用校园网搭建一个校园局域网站

1. 缘由 事情是这样的&#xff0c;我们学校的校园网平主要都是以WiFi的提供服务的&#xff0c;平是我会再电脑上将文件夹共享&#xff0c;这样我就躺在床上访问电脑上的文件。有一天我就想&#xff0c;那学校的内网是不是再各个地方都是互通的&#xff0c;只是我平时都在宿舍连…

SQL在线学习网站

SQL在线学习网站 1.在线编写网页&#xff1a;http://sqlfiddle.com/ 2.SQL菜鸟教程&#xff1a;http://www.runoob.com/sql/sql-intro.html 3.SQL语句在线练习 http://sample.jimstone.com.cn/xsql/ 4.SQL语句测验 http://www.w3school.com.cn/quiz/quiz.asp?quizsql 5.sql语…

lammps教程:推荐一个LJ力场参数查询及参数转换网站

使用lammps模拟时经常会用到LJ力场参数&#xff0c;这些参数可从已发表的文献中查到&#xff0c;但是查找起来相对麻烦&#xff0c;可能需要查阅很多篇论文才能找到需要的参数。 推荐一个LJ参数查询网站&#xff1a; http://lammpstube.com/mdpotentials/直接点击元素名称即可…

lammps教程:推荐一个不同单位下压强自动转换网站

大家好&#xff0c;我是小马老师。 在进行lammps模拟时&#xff0c;不同units下同一个物理量的单位有所不同。 例如&#xff0c;在metal单位下&#xff0c;压强的单位为bars。 在real单位下&#xff0c;压强的单位为atmospheres。 一般在处理结果或者设置压强时&#xff0c…