• Python 学习之urllib模块---用于发送网络请求,获取数据(2)


          接着上一次的内容。

          先说明一下关于split()方法:它通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串(把一个字符串分割成很多字符串组成的list列表)

                                  语法:str.split(str="", num=string.count(str)).

                                  参数:str 分隔符,默认为空格。num 分割次数

                                 返回值:返回分割后的字符串列表

                                 例如:你需要将一个英语句子中的每一个单词拿出来单独处理,就可以将其进行分割。

                                          如:a=' I am a new student'

                                               a.split() 

                                               split会将字符串按照空格进行分割,分割后得到的都是新的字符串,最终返回字符串组成的list

                                               结果['I','am','a','new','student']

                                               其实split()方法和excel里的分隔符很像。

                                  其对应的是连接list的字符串的方法join(),是将list中的所有字符串连接成为一个字符串

                                  如:s=','   lis=['I','am','a','new','student']   result=s.jion(lis)     print result         得到结果为 'I,am,a,new,student'

                                    按,连接list          

                                 list可以用for...in遍历lis中的元素。   for i in rang(1,10)这里的rang(1,10)就是一个list  [1,2,3,4,5,6,7,8,9] 

                                 I=rang(1,10)=[1,2,3,4,5,6,7,8,9],  for i in I :和 for i  in rang(1,10):效果是一样的。

                                 说明一下如何操作list列表

                                 1】访问list中的元素   如上述print lis[0]就会输出'I'

                                 2】修改list中的元素   如修改上述lis,lis[4]='teacher',输出lis时最后一个元素被改成'teacher'

                                 3】list中添加元素    用append方法  如lis.append(2016)

                                 4】删除list元素       用del方法,如del[4]

          啊,说了这么多,其实感觉是不是米有啥用,其实这些都是基本知识,今天自己在复习一遍,因为抓取网络上的内容经常是要操作list列表滴。看了这些内容,今天就可以继续学习抓取省/直辖市的编号。

          昨天学习的就是如何获取一个网络资源的信息,也就是和文件操作类似,就是打开 ,然后读取,解码,分割成为list列表这几个步骤。可以直接用这个代码

          b=urllib.request.urlopen('http://m.weather.com.cn/data5/city.xml').read().decode().spilt(',')

          这样就可以得到一个b的列表啦,也就是上述截图print打印出来的内容。分析一下,我们要得到数据01,02,就必须操作这个b列表啦

          下面就可以操作这个b列表了,试试

          print  (b[0]) 看看,是不是打印出'01|北京' ? 继续分析,此时b[0]也是一个字符串,将其按照|分割,就可以得出01啦,所以操作如下,应该是b[0].spilt('|')了,分割出来的数据应该 是[01,'北京’]了,此时再取值:b[0].split('|')[0]?思路是这样,看看是不是?

          一个是这样操作,那多个相同的就得循环啦,所以就得用到上述用的for i  in list

         for  i  in   b:                #i=b[0],b[1],b[2]。。。。。。

              code=i.split('|')[0]

              web='http://m.weather.com.cn/data5/city%s'

              web1=web %code

              print (web1) 

          看看是不是能打印出来第二个接口的数据了?  当然如果觉得太多,可以只打出2~3个省的看看。for i  in  b[:2]

          额,有点晚了,明天接着来2016年9月1号

  • 相关阅读:
    NOI 2019 网络同步赛 游记
    洛谷 P3695 CYaRon!语 题解 【模拟】【字符串】
    洛谷 P2482 loj #2885 [SDOI2010]猪国杀 题解【模拟】【贪心】【搜索】
    Spring MVC @ResponseBody返回中文字符串乱码问题
    Hibernate4中使用getCurrentSession报Could not obtain transaction-synchronized Session for current thread
    @Value取不到值引出的spring的2种配置文件applicationContext.xml和xxx-servlet.xml
    @RestController注解下返回到jsp视图页面
    Mysql引起的spring事务失效
    Eclipse中启动tomcat报错:A child container failed during start
    xshell不能输入中文,显示为??
  • 原文地址:https://www.cnblogs.com/xiaoyingbianbianbian/p/5831868.html
Copyright © 2020-2023  润新知