zhangboblogs

代码要多敲 注释要清晰

其中区号没有拿取出来

看到的朋友可以作为练习

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

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>
\'\'\'

 

分类:

技术点:

相关文章:

  • 2021-07-07
  • 2021-09-30
  • 2021-08-28
  • 2022-01-11
  • 2022-12-23
  • 2021-12-08
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-09
  • 2022-12-23
  • 2021-12-26
  • 2022-12-23
  • 2021-12-19
相关资源
相似解决方案