zoukankan      html  css  js  c++  java
  • selenium,webdriver,xpath获取全国各地的邮编

    代码要多敲 注释要清晰

    其中区号没有拿取出来

    看到的朋友可以作为练习

    ,有好的方法可以在下面留言

    from selenium import webdriver
    from lxml import etree
    import time
    #接口分析
    # base_url = 'http://www.ip138.com/post/'
    # base_url = 'http://www.ip138.com/51/'
    #生成浏览器
    driver = webdriver.PhantomJS()
    
    #拿取邮编信息函数
    def youbian(num):
        #各地的接口url地址
        base_url = 'http://www.ip138.com/%s/'%(num)
        #访问
        driver.get(base_url)
        #把页面生成树结构
        tree = etree.HTML(driver.page_source)
        #用xpath拿取想要的数据
        trs = tree.xpath('//table[@class="t12"]/tbody/tr[@bgcolor="#ffffff"]')
        for tr in trs:
            #地区和邮编的拿取
            diqu = tr.xpath('.//b')
            if diqu != []:
                diqu = diqu[0].text
                number = tr.xpath('.//td/a')
                number = number[1].text
    
            else:
                diqu = tr.xpath('.//td')[0].text
                number = tr.xpath('.//td/a')
                number = number[0].text
    
            #打印出想要的结果
            print(diqu,'邮编:' + number)
    
    #主进程
    if __name__ == '__main__':
        #各地的接口号
        num = [
            10,30,50,3,1,11,13,15,20,21,31,23,35,33,25,
            45,43,41,51,53,57,40,61,55,65,85,71,73,81,75,83
        ]
        #遍历接口号 一个一个的传输
        for n in num:
            youbian(n)
    
    '''
    树结构分析
    tr:市区
    <tr bgcolor="#ffffff">
        <td>
            <a href="guangzhou/">
                <b>广州市</b>
            </a>
        </td>
        
        <td>
            <a href="/510000/">510000</a>
        </td>
        
        <td>
            <a href="/020/">020</a>
        </td>
        
        <td colspan="3">&nbsp;</td>
    </tr>
    
    #地区
    <tr bgcolor="#ffffff">
        <td>通县</td>
        <td>
            <a href="/101100/">101100</a>
        </td>
        
        <td>
            <a href="/010/">010</a>
        </td>
    </tr>
    '''
  • 相关阅读:
    Spring 依赖注入控制反转实现,及编码解析(自制容器)
    Bean的作用域及生命周期
    spring三种实例化bean的方式
    编码剖析Spring管理bean的原理
    Spring基本概念
    hibernate 一对一关联关系 及其懒加载,总结
    hibernate中 inverse的用法(转载)
    SpringMVC_RESTRUL_CRUD
    java 位移运算符
    三目运算中的类型转换
  • 原文地址:https://www.cnblogs.com/zhangboblogs/p/8569974.html
Copyright © 2011-2022 走看看