zoukankan      html  css  js  c++  java
  • 10- python 网络爬虫分析

    Python 网络爬虫简单分析


    1 import urllib2
    2 response = urllib2.urlopen("http://www.baidu.com")
    3 print response.read()

    我们下面开始分析代码

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

    这里我们利用的是urllib2库中的urlopen方法,这里可以知道这是一个http协议的网址,urlopen一般接受三个参数,它的参数如下:

    urlopen(url, data, timeout)
    

    第一个参数url即为URL,第二个参数data是访问URL时要传送的数据,第三个timeout是设置超时时间。

    第二三个参数是可以不传送的,data默认为空None,timeout默认为 socket._GLOBAL_DEFAULT_TIMEOUT

    第一个参数URL是必须要传送的,这里我们传送了百度的URL,执行urlopen方法之后,返回一个response对象,返回信息便保存在这里面。

    print response.read()
    

    response对象有一个read方法,可以返回获取到的网页内容。

    如果不加read直接打印会是什么?答案如下:

    <addinfourl at 40798248 whose fp = <socket._fileobject object at 0x029A29B0>> 
    

    这里如果不加read方法的话,打印出来的就是对该对象的描述。

    其实上面的urlopen是可以传入request请求的

    上面是一个简单的获取网络信息的一个爬虫例子。

    下面是一个简单的糗事百科爬虫的脚本,来练习下库的使用。

     8 import urllib
     9 import re
    10 
    11 head = 0
    12 n = 1
    13 while n < 10:
    14     page = n
    15     url = 'http://www.qiushimm.com/page/' + str(page)
    16     def getHtml(url):
    17         page = urllib.urlopen(url)
    18         html = page.read()
    19         return html
    20 
    21     def getImg(html):
    22         reg = r'src="(.+?.jpg)"'
    23         imgre = re.compile(reg)
    24         imglist = re.findall(imgre,html)
    25         x = head
    26         for imgurl in imglist:
    27             urllib.urlretrieve(imgurl,'%s.jpg' % x)
    28             x+=1
    29     html = getHtml(url)
    30     print getImg(html)
    31     n = n+1
    32     head = head + 10
  • 相关阅读:
    反射 Reflection
    后台输出的数据进行字符判断,小数点后边是0不显示,不是0显示
    判断input内的字符是不是数字或字母
    手机端底部按钮隐藏与显示
    CSS改变checkbox样式
    js小数取整 小数保留两位
    如何判断打开页面时使用的设备?
    H5 拖放实例
    根据手机系统引入不同的css文件
    HTML 5 video 视频标签全属性详解(转)
  • 原文地址:https://www.cnblogs.com/stephenmc/p/5941384.html
Copyright © 2011-2022 走看看