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"> </td> </tr> #地区 <tr bgcolor="#ffffff"> <td>通县</td> <td> <a href="/101100/">101100</a> </td> <td> <a href="/010/">010</a> </td> </tr> '''