栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python爬虫项目01

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python爬虫项目01

一、Python开发环境 1、Python开发环境搭建

python是一种跨平台的计算机语言,是一种解释型、面向对象和动态数据的高级程序设计语言。

  • python3.x设计理念更加高效合理和人性化,代码开发和运行效率更高。
  • python2.x不同于python3.x,互相有很多用法不兼容。

Python语言特点:

  • 开源、免费、功能强大。
  • 语法简单清晰,强制用空白符作为语句缩进。
  • 具有丰富和强大的库。
  • 是解释型语言,变量类型可变类似于JavaScript。
  • 易读、易维护,用途广。

主流开发工具与环境:

  1. Python自带开发环境

    官网::https://www.python.org/downloads/windows
    简单

  2. PyCharm与Python开发环境

    官网:http://www.jetbrains.com/pycharm/
    下载免费版本:pycharm community

  3. Anaconda与Python开发环境

    官网:https://www.continuum.io/downloads
    功能强大,本次使用该开发环境

二、Flask Web网站

》Python有很多web开发工具,flask是其中一个非常容易的框架。

1、flask安装

win+R打开cmd,输入pip install flask

2、编写一个简单的flask服务器
#coding=gbk
# 导入flask程序包
import flask
# 初始化flask对象,参数__name__是程序的名称
app=flask.Flask(__name__)
@app.route("/")
def hello():
  return "你好"

@app.route("/hi")
def hi():
  return "hi,你好"

if __name__=="__main__":
  app.run()

运行上述代码控制台显示如下图:

然后在浏览器输入上图中的网址:

  • 输入http://127.0.0.1:5000/ ——>显示:你好

  • 输入http://127.0.0.1:5000/hi ——>显示:hi,你好

3、自己写一个静态网页,然后分别用服务器和客户端访问该网页
  1. index.html实现

    
    
    
        
        Title
    
    
        

    Welcome Python flask Web

    It is very easy to make a website by python Flask.
  2. 用server.py启动web服务,读取index.html页面

    import flask
    app=flask.Flask(__name__)
    @app.route("/")
    def index():
      try:
        fobj=open("index.html","rb")
        data=fobj.read()
        fobj.close()
        return data
      except Exception as err:
        return str(err)
    
    if __name__=="__main__":
      app.run()
    


    3.用client.py作为一个客户端访问index.html访问页面

**注意:**client.py是作为一个客户端从server.py这个服务器上读取信息的

import urllib.request
url="http://127.0.0.1:5000"
resp=urllib.request.urlopen(url)
data=resp.read()
html=data.decode()
print(html)

三、GET方法访问网站

访问网站最常用的一种方法是GET方法,这种方法主要是从客户端从服务器获取网站数据,如果有交互,客户端把参数附加到网址后面向服务器提供参数,服务器根据不同的参数做出不同的响应。

  1. 客户端GET方式发送数据

    GET方式发送的数据附加在URL后面,在URL之后用一个“?”连接,数据采用:“名称1=值1&名称2=值2······”

    import urllib.request
    url="http://127.0.0.1:5000"
    p="广东"
    c="深圳"
    p=urllib.parse.quote(p)#对汉字进行编码UTF-8
    c=urllib.parse.quote(c)
    data="province="+p+"&city="+c
    resp=urllib.request.urlopen(url+"?"+data)
    data=resp.read()
    html=data.decode()
    print(html)
    

  2. 服务器获取GET发送的数据

    服务器用Flask中的request对象的args来存储GET参数,用get方法获取参数。

    import flask
    app=flask.Flask(__name__)
    @app.route("/")
    def index():
        try:
            '''
            如果province有传递来的值,则获取传过来的具体值
            如果province没有传递的值,则province将获取到一个空值“”
            '''
            province=flask.request.args.get("province")
            city=flask.request.args.get("city")
            return province+","+city
        except Exception as err:
            return str(err)
    
    if __name__=="__main__":
        app.run()
    
    

四、POST方法向网站发送数据 1、POST发送数据
  1. 客户端POST发送数据
    POST方法访问网站时客户端向服务器发送表单数据,表单数据组织方式与GET方法参数列表相似,结构:“名称1=值1&名称2=值2······”

    #客户端POST发送数据
    import urllib.parse
    import urllib.request
    url="http://127.0.0.1:5000"
    try:
        province=urllib.parse.quote("广东")
        city=urllib.parse.quote("深圳")
        data="province="+province+"&city="+city
        data=data.encode()
        html=urllib.request.urlopen(url,data=data)
        html=html.read()
        html=html.decode()
        print(html)
    except Exception as err:
        print(err)
    

  2. 服务器获取POST数据
    服务器用Flask中的request对象的form来存储POST的参数,用get方法获取参数

    #服务器获取POST数据
    import flask
    app=flask.Flask("__name__")
    @app.route("/",methods=["POST"])
    def index():
        try:
            province=flask.request.form.get("province")
            city=flask.request.form.get("city")
            return province+","+city
        except Exception as err:
            return str(err)
    
    if __name__=="__main__":
        app.run()
    

2、GET与POST混合使用
  1. 服务器获取数据
import flask
app=flask.Flask(__name__)
@app.route("/",methods=["GET","POST"])
def index():
    try:
        province=flask.request.args.get("province")
        city=flask.request.args.get("city")
        note=flask.request.form.get("note")
        return province+","+city+"n"+note
    except Exception as err:
        print(err)

if __name__=="__main__":
    app.run()


代码优化: 用values替换args和form

import flask
app=flask.Flask(__name__)
@app.route("/",methods=["GET","POST"])
def index():
    try:
        province=flask.request.values.get("province")
        city=flask.request.values.get("city")
        note=flask.request.values.get("note")
        print(province+"n"+city+"n"+note)
        return province+","+city+"n"+note
    except Exception as err:
        print(err)

if __name__=="__main__":
    app.run()
  1. 客户端发送数据
import urllib.parse
import urllib.request
url="http://127.0.0.1:5000"
note="深林人不知,明月来相照"
province=urllib.parse.quote("广东")
city=urllib.parse.quote("深圳")
try:
    note="note="+urllib.parse.quote(note)
    param="province="+province+"&city="+city
    html=urllib.request.urlopen("http://127.0.0.1:5000?"+param,data=note.encode())
    html=html.read()
    html=html.decode()
    print(html)
except Exception as err:
    print(err)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/958598.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号