zoukankan      html  css  js  c++  java
  • python 网页抓取信息

    目标:从下面这个网页抓取前10页IP、端口、运营商、地址、最后检测时间并存入mysql数据库

    代码:

    import requests
    import re
    import pandas as pd
    import pymysql
    #导入需要使用到的模块
    class huoqu():
        #读入数据
        def __init__(self):
            self.num=1
            for i in range(10):
                #获取网页信息
                response = requests.get('http://www.89ip.cn/index_%d.html'%i)
                self.HTML = response.text
                #print(HTML)
                #是一个字符串
                #提取信息
                self.ip = re.compile(r'<tr>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?</tr>',re.S)
                self.res = re.findall(self.ip,self.HTML)
                self.DButil(self.res)
        def DButil(self,res):
            #建立数据库连接
            self.db=pymysql.connect('localhost','root','root','python_an')
            #获取游标对象
            self.cursor = self.db.cursor()
            for ip_ in self.res:
                self.num+=1
                #插入数据语句
                query = """insert into catering_sale (num,IP,port,geographical,perators,final_detection) values (%s,%s,%s,%s,%s,%s)"""
           #去 操作
           values = (self.num,ip_[0].replace(' ', '').replace(' ', ''),ip_[1].replace(' ', '').replace(' ', ''),ip_[2].replace(' ', '').replace(' ', ''),ip_[3].replace(' ', '').replace(' ', ''),ip_[4].replace(' ', '').replace(' ', '')) self.cursor.execute(query,values) #关闭游标,提交,关闭数据库连接 #如果没有这些关闭操作,执行后在数据库中查看不到数据 self.cursor.close() self.db.commit() self.db.close() if __name__=='__main__': huoqu=huoqu() huoqu.__init__
    <tr>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?</tr>
    对应源码:
    </th>
      </tr>
      </thead>
      <tbody>
      <tr>
      <td>
      101.4.136.34 </td>
      <td>
      8080 </td>
      <td>
      北京市 </td>
      <td>
      教育网 </td>
      <td>
      2019/08/05 17:30:08 </td>
      </tr>
      <tr>
      <td>


    数据库:

    提醒:安装pymysql:python -m pip install pymysql

    测试结果:

  • 相关阅读:
    [Java入门] 从键盘输入两个整数,求最小公倍数并输出
    【C#食谱】【面食】菜单3:用泛型替代ArrayList
    C# Stable Sort(稳固排序)
    【C#食谱】【面食】菜单4:List和LinkedList性能比较
    一个非常酷的应用:修改“开始”菜单的显示文本
    我的第一个5年计划
    C#语言重要常识
    决定执行力的49个细节
    .NET资源链接
    标准表达式中数据类型不匹配(Access 时间格式)
  • 原文地址:https://www.cnblogs.com/abels0025/p/11304579.html
Copyright © 2011-2022 走看看