我的第一个小爬虫程序-python

2023-11-02

  • 爬什么?爬代理服务器网站的服务器 端口 代理种类 所在地区 更新日期 今日评分 总的评分 可用 速度测评信息,这样的网页有七八个,好在网址明名很规则

    爬这里的东西

具体说就是爬很多的这样的html代码里的信息

 <span class="tbBottomLine" style="width:140px;">
     58.222.254.11
 </span>
 <span class="tbBottomLine" style="width:50px;">
         3128
 </span>
 <span class="tbBottomLine " style="width:70px;">
     高匿
 </span>
 <span class="tbBottomLine " style="width:70px;">
     中国
 </span>
 <span class="tbBottomLine " style="width:80px;">
     09月05日
 </span>
 <span class="tbBottomLine " style="width:80px;">
     3.44(70票)
 </span>
 <span class="tbBottomLine " style="width:60px;">
     3.44
 </span>
 <span class="tbBottomLine " style="width:30px;">
     14天
 </span>
  • 怎么爬?利用python里的这个库urllib2,当然也要用正则,这里不得说我的正则好复杂(实在是想不到怎么简化)
import re
import urllib2

orgi=r'http://www.proxy360.cn/Region/'
proxywebs=['China','Brazil','America','Taiwan','Japan','Thailand','Vietnam','bahrein']

def get_Proxy_Info():
    f=open('proxy.txt','w+')
    p=re.compile("<span[^>]*>[\s]*(\S+?)[\s]*</span>[\s]*<span[^>]*>[\s]*(\S+?)[\s]*</span>[\s]*<span[^>]*>[\s]*(\S+?)[\s]*</span>[\s]*<span[^>]*>[\s]*(\S+?)[\s]*</span>[\s]*<span[^>]*>[\s]*(\S+?)[\s]*</span>[\s]*<span[^>]*>[\s]*(\S+?)[\s]*</span>[\s]*<span[^>]*>[\s]*(\S+?)[\s]*</span>[\s]*<span[^>]*>[\s]*(\S+?)[\s]*</span>")
     '''
    服务器 端口 代理种类 所在地区 更新日期 今日评分 总的评分 可用 速度测评 '''
    for s in proxywebs:
        target=orgi+s;
        req=urllib2.urlopen(target)
        mystr=req.read()
        tmp=p.findall(mystr)
        for t in tmp:
            f.write('\t'.join(t))
            f.write('\n')
            f.flush()
    f.close()

if __name__=="__main__":
    get_Proxy_Info()
  • 原理,或流程
    超简单,获取指定网页的源代码,返回类型是字符串,我们利用正则表达式匹配到我们想抓去的部分,利用分组进一步提取出来,然后保存或者之后的数据分析,显然这一步我没有做

  • 注意事项

    • 网页的编码,一般是UTF8,万一不是呢?我写的时候,保存的时候乱码了,后来才知道要注意编码格式

    • 正则的编写,这个考功底,其实也不然,你也可以很死的写,虽然我不推荐,但是我一开始只会这样写

<span class="tbBottomLine" style="width:140px;">\r\n(.+?)\r\n</span>
<span class="tbBottomLine" style="width:50px;">\r\n(.+?)\r\n</span>
<span class="tbBottomLine " style="width:70px;">\r\n(.+?)\r\n</span>
<span class="tbBottomLine " style="width:70px;">\r\n(.+?)\r\n</span>
<span class="tbBottomLine " style="width:80px;">\r\n(.+?)\r\n</span>
<span class="tbBottomLine " style="width:80px;">\r\n(.+?)\r\n</span>
<span class="tbBottomLine " style="width:60px;">\r\n(.+?)\r\n</span>
<span class="tbBottomLine " style="width:30px;">\r\n(.+?)\r\n</span>

很糟糕,但是能爬下来-_-#


  • 结果
    这里写图片描述

注:环境:python2.7 WingIDE

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的第一个小爬虫程序-python 的相关文章

随机推荐

  • html,实现心动的表白代码

    今天看到多年年前的大佬写的 js表白代码 觉得不错 分析给大家 代码在这宫里 Love
  • python---------xpath提取数据------打破局限

    作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 qin laoda Gitee com 目录 为什么要学习XPATH和LXML类库 什么是XPATH 认识XML XML的节点关系 常 节点选择 具 节点选择语法 节点修饰语法 选择未知
  • ThinkPHP5之多语言切换

    T和inkPHP5的多语言切换是个人比较欣赏的一点 真是佩服设计者 怎么想到多语言切换的 在实际开发过程中 往往不是单一语言的项目 涉及多语言的使用 这时需要多语言切换 关键函数 Lang setAllowLangList 多语言的切换函数
  • 游戏开发unity UGUI知识系列:计算单行文本的宽度

    在Text使用了ContentSizeFitter情况下 对text设置新的字符串后 如果我们想要在当前帧获取宽度时 通过RectTransform sizeDelta x获取的宽度经常是旧字符串时的长度 所以需要自行计算改变文本后text
  • 虚拟机VMware的下载与安装——详细教程

    学习Linux过程中少不了要使用Linux系统 但是有的新手连 Windows 的安装都不太熟悉 更别提 Linux 的安装了 即使安装成功了 也有可能破坏现有的 Windows 系统 比如导致硬盘数据丢失 Windows 无法开机等 所以
  • 【Android】MVC,MVP,MVVM三种架构模式的区别

    MVC 传统的代码架构模式 仅仅是对代码进行了分层 其中的C代表Controller 控制的意思 将代码划分为数据层 视图层 控制层 三层之间可以任意交互 MVP MVP是在MVC基础上改进而来的一种架构 其中的P代表Presenter 主
  • 关于queue_depth的调整

    queue depth是指hdisk层面上命令队列的深度 它针对的是hdisk 如果有多路径软件的话 它针对的就是多路径的hdisk 如powerdisk dlmfdrv 那如何调整queue depth 何时调整呢 more 首先我们来讲
  • STEAM创客教育如何激发孩子的学习兴趣

    如何才能够提高孩子的学习兴趣呢 这是任何一种教育形式都应该思考的问题 在STEAM创客教育中 格物斯坦小坦克告诉你激发孩子的学习兴趣主要包括以下几个方面 数学与艺术的结合 孩子最早接触的艺术是涂色 最早接触的数学是数字 所以数学和艺术结合最
  • MarkDown标题自动添加编号

    转自 MarkDown标题自动添加编号 说明 这是一个实现给本地 Markdown 文件添加标题编号的 python 脚本 可与 Markdown文件自动生成目录 搭配使用 比如说你现在有一个 Markdown 文件 这个文件有很多级标题且
  • Linux系统中关闭看门狗的指令

    1 echo V gt dev watchdog 关掉看门狗
  • Python读取超时(Read timed out.)

    HTTPConnectionPool host XXXXXXXX port xxxx Read timed out XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Read timed out 解决方案 pip3 de
  • 编程语言python入门要电脑什么配置能带动-Python是万能的编程语言吗?这五大用途很重要!...

    这个真的不好说 因为Python可以做的事情有很多 用途也是非常广泛的 尤其是在以下领域中更具有作用 1 web开发 Python是一种解释型的脚本语言 开发效率高 所以非常适合用来做web开发 Python有上百种web开发框架 有很多成
  • 【ML on Kubernetes】第 1 章:机器学习的挑战

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • aps是什么意思_aps画幅是什么意思

    APS的原意是指 高级摄影系统 Advanced Photo System 是数码相机普及前的一种过渡产品 它仍使用胶卷 但在胶卷和暗盒上通过磁性材料和数字计划 记录了很多相关数据 还有一个特点就是APS允许用户随时在三种画幅格式切换 它们
  • 特征融合方法

    概述 基本概念 在很多工作中 融合不同尺度的特征是提高分割性能的一个重要手段 低层特征分辨率更高 包含更多位置 细节信息 但是由于经过的卷积更少 其语义性更低 噪声更多 高层特征具有更强的语义信息 但是分辨率很低 对细节的感知能力较差 如何
  • MyBatis PostgreSQL实现数组类型的操作

    我的GitHub Powerveil GitHub 我的Gitee Powercs12 powercs12 Gitee com 皮卡丘每天学Java 最近在学习数据库PostgreSQL 遇到如何实现对数组类型的数据操作 试着自己尝试学习实
  • UE5关于高亮显示物体轮廓线

    描边材质如果是透明的话 不会显示描边 材质参数勾选 允许自定义深度写入 即可 材质参考这个文章 https blog csdn net Axiang 0123 article details 121168272 ops request mi
  • 多标签分类怎么做?教你4招

    首先简单介绍下 多标签分类与多分类 多任务学习的关系 多分类学习 Multi class 分类器去划分的类别是多个的 但对于每一个样本只能有一个类别 类别间是互斥的 例如 分类器判断这只动物是猫 狗 猪 每个样本只能有一种类别 就是一个三分
  • iview表格单元格动态绑定class/style,不刷新表格本身.

    对订单表格的时间列 动态检验时间是否过期并用颜色标记 关键点是在render中的渲染函数动态绑定class style 小问题是表格数据本身是确定的不再变化 我们又需要跟随时间变化 所以首选需要一个定时器 定时器不能放在表格里会导致计时器不
  • 我的第一个小爬虫程序-python

    爬什么 爬代理服务器网站的服务器 端口 代理种类 所在地区 更新日期 今日评分 总的评分 可用 速度测评信息 这样的网页有七八个 好在网址明名很规则 具体说就是爬很多的这样的html代码里的信息 span class tbBottomLin