美文网首页
2018-09-13爬虫——数据大盗

2018-09-13爬虫——数据大盗

作者: 棕色试剂瓶 | 来源:发表于2018-09-14 18:47 被阅读0次

    Urllib库

    什么是Urllib?

    它是python自带的标准库,主要用它来获取网页信息。

    怎么获取网页信息??
    (简单小例子)

    # 导入库
    from urllib import request
    
    # 定义要获取信息的网址
    url = "http://www.bilibili.com"
    # 进行神秘操作(解析网址)
    req = request.Request(url)
    # 在解析好的信息中添加头部浏览器标识信息
    req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36")
    # 打开网址链接通道
    res = request.urlopen(req)
    # 将获取到的信息转码后打印出来
    print(res.read().decode("utf-8"))
    
    

    这样就能获取到数据了,一般情况下取到的只是网页的html代码。


    每次都只能固定网址展现出的那一点数据,这爬一次都不够成本的,我们可是大盗,要展现出达到的”大“
    如何能够一次获取更多的数据呢?_?
    能够一次获取更多数据,就要求我们的地址不能是固定的,应该是变了,再网址中引入变量就不错!

    引入变量后地址就变了,还能获取到数据吗??
    我们来观察几个网址:

    http://www.aihuhua.com/hua/page-2.html
    http://www.aihuhua.com/hua/page-3.html

    这是一个网页点击不同分页页码之后的效果,我们可以看出,两个网址几乎一模一样,唯一不同的就是一个是page-2,一个是page-3。英语已经过四级的你一定能够看出来(没过四级相信你也是可以的)。

    没错! 这两个对应的就是页码。将它变成变量我们是不是就可以获取到多页的数据啦!
    我们来试一试吧:

    from urllib import request
    

    上面这种情况多次爬取数据时,可能会被网页判定为非正常操作而被屏蔽,这时后我们就要对自己进行“伪装“
    首先时浏览器伪装

    起始我们刚才再为网址解析添加”User-Agent“,就已经进行初步的伪装,将自己从一爬虫伪装成了浏览器请求。

    接下来我们要做的是不仅将自己伪装成浏览器,还要变成不同的浏览器。

    秘籍:浏览器伪装组件!!!

    # 导入随机函数,它能使我们的伪装变得不经意-_^
    import random 
    
    # 这是常见的浏览器头部,是我们用来伪装的道具库
    ua_list = [
        "Mozilla/5.0 (Windows NT 6.1; ) Apple.... ",
        "Mozilla/5.0 (X11; CrOS i686 2268.111.0)... ",
        "Mozilla/5.0 (Macintosh; U; PPC Mac OS X.... ",
        "Mozilla/5.0 (Macintosh; Intel Mac OS... "
    ]
    
    # 不经意的挑选道具
    user_agent = random.choice(ua_list)
    
    # 伪装*_*
    ua_header = {"User-Agent":user_agent}
    
    # 大成功!!!
    

    这样我们就能改变容貌取爬取数据了,但是人家的网站也不是吃素的,虽然我们易了容,但是身份证(每台电脑的IP是固定的,虽然我们改变了浏览器的头部,但是每次请求的IP是不变的)还是同一张啊!!!
    怎么办要被识破了!

    相关文章

      网友评论

          本文标题:2018-09-13爬虫——数据大盗

          本文链接:https://www.haomeiwen.com/subject/mjsggftx.html