zoukankan      html  css  js  c++  java
  • 打开网页总结

    爬虫分为几个步骤,首先是获得url,然后下载url里面的源码,然后再去分析该源码里面我们所需要的东西。

    首先学习的是urlopen(url,data,timeout),后两者可以不写,来打开数据

    import urllib.request

    response = urllib.request.urlopen("http://www.baidu.com")

    print response.read()
    这样子就可以爬取整个网页了。
    然而方法还是有很多。。。

    3.构造Requset

    其实上面的urlopen参数可以传入一个request请求,它其实就是一个Request类的实例,构造时需要传入Url,Data等等的内容。比如上面的两行代码,我们可以这么改写

    request = urllib.request.Request("http://www.baidu.com")

    response =urllib.request.(request)
    print response.read()
    一样的效果,只是方式不一样,对于request最多可以传递两个数据,(url,data),data就是比如是用户名和密码,就是打开网页时需要的登陆数据,才可以登陆到相对应的网页。接下来就是讲对应的data数据由来。

    4.POST和GET数据传送

    让我们来回忆一下get和post方式吧。

    最重要的区别是GET方式是直接以链接形式访问,链接中包含了所有的参数,当然如果包含了密码的话是一种不安全的选择,不过你可以直观地看到自己提交了什么内容。POST则不会在网址上显示所有的参数

    总的来说,get方式会在网页上显示你的data数据,而post方式则不会。

    这是post方式:

    import urllib.request
    import urllib.parse
    values={}
    values['username']='02蔡彩虹'
    values['password']='XXXX'
    url="http://www.baidu.com"
    data=urllib.parse.urlencode(values)
    request=urllib.request.Request(url,data)
    content=urllib.request.urlopen(request).read()
    print(data)
    因为网页上的名字和密码需要进行编码,对于字典的编码就用
    urllib.parse.urlencode(values)
    它就会自动的编出符合等式的编码,对于编码,会在编码转换方面讲http://blog.csdn.net/haoni123321/article/details/15814111/,该链接里面有
    这是get方式;
    values={}
    values['username'] = "1016903103@qq.com"
    values['password']="XXXX"
    data=urllib.parse.urlencode(values)
    url = "http://passport.csdn.net/account/login"
    geturl = url + "?"+data
    request =urllib.request.Request(geturl)
    response = urllib.request.urlopen(request)
    print response.read()
    以上是urllib打开网页的方式
    :使用selenium
    from selenium import webdriver
    browser=webdriver.Chrome()
    browser.get('http://www.baidu.com/')
    print(browser.page_source)
    期间,他需要一个模拟浏览器,相当于打开浏览器的方法
    最后一句就可以打开网页的所有链接
    它的具体用法在后面会陆续讲到
    三:使用requests
    url="http://www.baidu.com"
    html = requests.get(url)
    print(html.text)
    这样子即可获取相对应的网页

     


  • 相关阅读:
    取指定长度的字符串(包括中英文),以"..."的方式显示
    js 常用函数
    js 规范
    js高级编程笔记2
    js高级编程笔记
    WinJS开发div中元素的水平和垂直居中metro
    WinJS开发iframe中Javascript执行错误metro
    MySql乱码
    正则表达式符号系统
    Java替换字符串中的回车换行
  • 原文地址:https://www.cnblogs.com/caicaihong/p/5687331.html
Copyright © 2011-2022 走看看