今天做一个简单的天气查询的程序,主要用到Urllib2(python自带的),和Json(Java Script Object Notation,JavaScript 对象表示法),安装步骤:

json的安装包在这里:https://www.lfd.uci.edu/~gohlke/pythonlibs/#simplejson,

打开cmd,进入到Python安装目录的Scripts文件夹中.比如:D:\Program Files\Python\Scripts。使用pip安装刚刚下载好的whl文件,pip.exe install *.whl,例如:

cd D:\Program Files\python\Scripts>
pip.exe install D:\python\simplejson-3.10.0-cp36-cp36m-win_amd64.whl  提示安装成功后,在\Python\Lib\site-packages目录下可以看到simplejson. Urllib2用于获取网页的内容,Json用于对内容里的东西进行分析处理, 以下是一个简单的爬取语句: import urllib2
web = urllib2.urlopen("http://www.sina.com")          #这里得加一个http://,不是直接写网页地址的
content = web.read()
print content
实例:
import urllib2
web = urllib2.urlopen("http://www.weather.com.cn/data/cityinfo/101200101.html")          #这里得加一个http://,不是直接写网页地址的
content = web.read()
print content
天气的查询是通过中国天气网(www.weather.com.cn)的信息获取完成的,点击http://www.weather.com.cn/data/cityinfo/101010100.html会发现101010100是北京的天气,这个网站是通过代号查询的,所以我们做一个城市与代号的字典,city.py,放在网盘中(https://pan.baidu.com/s/1c0Nw4m?errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0&traceid=),使用的时候只要放在和你的代码同一路径下,用 from city import city 前一个“city”是模块名,也就是py文件的名称,后一个“city”是模块中变量的名称。 我们分析http://www.weather.com.cn/data/cityinfo/101010100.html里的内容发现我们想要的内容都在里面,如果把101010100改成别的就变成了其他城市的天气,所以: #python默认ASCII码,这一句是为了转换为UTF-8,不是注释同时city.py里也要声明
#在这个程序中第一行加了   # -*- coding: UTF-8 -*-     这句反而不行了,不知道为啥 import urllib2
import json    city = {
    '北京': '101010100',
    '上海': '101020100',
    '天津': '101030100',
    '兰州': '101160101',
    '鄂州': '101200301',    
    '荆州': '101200801',
    '香港': '101320101',
    '新界': '101320103',
    '澳门': '101330101',
    '台北': '101340101',
    '高雄': '101340201',
    '台中': '101340401'
} cityname = raw_input("The weather in which city do you want ?")
citycode = city.get(cityname)
print citycode             #测试代码,测试可行 url = ("http://www.weather.com.cn/data/cityinfo/%s.html"  %citycode)    #一定要注意%s
pagecontent = urllib2.urlopen(url).read()
print pagecontent
binggo。 得到如下数据: {"weatherinfo": {"city":"武汉", "cityid":"101200101", "temp1":"7℃", "temp2":"19℃", "weather":"小雨转多云", "img1":"n7.gif", "img2":"d1.gif", "ptime":"18:00"} } 接下来是分析的环节,我们发现这是嵌套的字典,我们只需要里面的temp1,2和weather的信息即可。 那么如何提取嗯? 现在我们需要借助json来完成了,可以先了解一下:http://www.w3school.com.cn/json/ import json data = json.loads(pagecontent),这时候的data已经是一个字典,尽管在控制台中输出它,看上去和pagecontent没什么区别 这是编码上有区别: {u'weatherinfo': {u'city': u'\u5357\u4eac', u'ptime': u'11:00', u'cityid': u'101190101', u'temp2': u'28\u2103', u'temp1': u'37\u2103', u'weather': u'\u591a\u4e91', u'img2': u'n1.gif', u'img1': u'd1.gif'}} 但如果你用type方法看一下它们的类型: print type(pagecontent) print type(data) 就知道区别在哪里了。 import urllib2
import json city = {
    "北京":"101010100",
    "武汉":"101200101"
    }
cityname = raw_input("which city?\n")
citycode = city.get(cityname)
print citycode
print if citycode:
    url = ("http://www.weather.com.cn/data/cityinfo/%s.html"  %citycode)
    print url
    print
    page = urllib2.urlopen(url).read()
    print page   #这里打印出来的东西里就有我们想要的东西了
    print    #使用json
    data = json.loads(page)    #loads是json方法中的一种
    result = data["weatherinfo"]
    str_temp = ("%s\t%s - %s") % (
        result["weather"],
        result["temp1"],
        result["temp2"]
        )
    print str_temp
else:
    print "Can not find this city."
就可以输出: 晴-2℃ - 16℃

  

Python-简单的爬虫语句的更多相关文章

  1. Python简单网络爬虫实战—下载论文名称,作者信息(下)

    在Python简单网络爬虫实战—下载论文名称,作者信息(上)中,学会了get到网页内容以及在谷歌浏览器找到了需要提取的内容的数据结构,接下来记录我是如何找到所有author和title的 1.从sou ...

  2. Selenium + PhantomJS + python 简单实现爬虫的功能

    Selenium 一.简介 selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样 selenium2支持通过驱动真实浏览器(FirfoxDrive ...

  3. 亲身试用python简单小爬虫

    前几天基友分享了一个贴吧网页,有很多漂亮的图片,想到前段时间学习的python简单爬虫,刚好可以实践一下. 以下是网上很容易搜到的一种方法: #coding=utf-8 import urllib i ...

  4. python简单页面爬虫入门 BeautifulSoup实现

    本文可快速搭建爬虫环境,并实现简单页面解析 1.安装 python 下载地址:https://www.python.org/downloads/ 选择对应版本,常用版本有2.7.3.4 安装后,将安装 ...

  5. Python 简单网页爬虫学习

    #coding=utf-8 # 参考文章: # 1. python实现简单爬虫功能 # http://www.cnblogs.com/fnng/p/3576154.html # 2. Python 2 ...

  6. python简单的爬虫,网页图片

    1 #!/usr/bin/python 2 #coding=utf-8 3 import urllib 4 import re 5 6 def gethtml(url): 7 page=urllib. ...

  7. python 简单的爬虫

    import urllib.request import re import ssl # 处理https请求 import time import os # 创建目录用 def get_html(ur ...

  8. Python简单分布式爬虫

    分布式爬虫采用主从模式.主从模式是指由一台主机作为控制节点,负责管理所有运行网络爬虫的主机(url管理器,数据存储器,控制调度器),爬虫只需要从控制节点哪里接收任务,并把新生成任务提交给控制节点.此次 ...

  9. python简单小爬虫爬取易车网图片

    上代码: import requests,urllib.request from bs4 import BeautifulSoup url = 'http://photo.bitauto.com/' ...

  10. Python简单网页爬虫——极客学院视频自动下载

    http://blog.csdn.net/supercooly/article/details/51003921

随机推荐

  1. GWAS: 曼哈顿图,QQ plot 图,膨胀系数( manhattan、Genomic Inflation Factor)

    画曼哈顿图和QQ plot 首推R包“qqman”,简约方便.下面具体介绍以下. 一.画曼哈顿图 install.packages("qqman") library(qqman) ...

  2. 收藏这些Safari快捷键,让你的Mac浏览网页更加方便

    文章内容及图片来源于:知乎,如果涉及版权问题,请联系作者删除 文章收录于:风云社区(提供上千款各类mac软件的下载) Safari是Mac上的原生浏览器,功能自然很强大,现在每天在Mac上使用的最多的 ...

  3. maven wrapper使用本地maven

    修改maven-wrapper.properties内容如下: #distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apa ...

  4. [数分提高]2014-2015-2第6教学周第1次课讲义 3.3 Taylor 公式

    1. (Taylor 公式). 设 $f^{(n)}$ 在 $[a,b]$ 上连续, $f^{(n+1)}$ 在 $(a,b)$ 内存在, 试证: $ \forall\ x,x_0\in [a,b], ...

  5. docker学习-----docker可视化portainer

    docker的可视化操作界面portainer 1.创建一个挂载区          docker volume create portainer_data 2.安装( docker run -d - ...

  6. docker时间和本地时间不一致的问题

    前言: 在本地执行date 和登录docker后的date显示的时间不一致,差一天多,不是8个小时 参考:戳这儿 先重启,查看后发现差8个小时 用里面cp localtime 再重启还是差8个小时 试 ...

  7. 肺结节CT影像特征提取(四)——肺结节CT影像特征提取MATLAB代码实现

    之前的文章讲述了肺结节CT影像数据特征提取算法及基于MATLAB GUI设计的肺结节CT影像特征提取系统.本文将讲述几个主要部分的代码实现,分别是预处理.灰度特征提取.纹理特征提取.形态特征提取数据. ...

  8. .Net三层架构

    .Net三层架构   希望朋友们留下自己对三层架构的理解... 三层体系结构的概念 用户界面表示层(USL) 业务逻辑层(BLL) 数据访问层(DAL) BLL将USL与DAL隔开了,并且加入了业务规 ...

  9. 【原创】大数据基础之Mesos+Marathon+Docker部署nginx

    一 安装 安装docker:https://www.cnblogs.com/barneywill/p/10343091.html安装mesos:https://www.cnblogs.com/barn ...

  10. Android Studio项目Gradle内网配置

    由于内网无法连接到外部网络,在使用Gradle编译Android Studio项目时就会面临一些问题: 1.Gradle安装文件无法下载 2.Gradle Android插件无法下载 3.项目依赖文件 ...