2022-10-09 16:08
标签:

最近一个让我帮他爬爬取豆瓣图书的一些数据,恰好已经好久没有爬数据了,今天就重温下爬虫过程并分享出来大家参考讨论下,文中我把爬取的过程按照顺序写下来,主要是留个痕迹。在文中我会把爬取数据所需的所有代码也示例出来,如果你懒得自己敲的话,可以直接复制

步骤一:添加header信息。设置header信息,模拟成浏览器或者app欺骗反爬系统,避免418。这个header我是在网上找的,如果想设置自己浏览器的header信息,请自行百度,很简单。

步骤二:获取网页信息且解析网页,我爬取的是网页是:

步骤三:分析网页的反爬机制,经常搞爬虫的都知道豆瓣的反爬比较严,这里我主要分析了网站的随机ua,cookie,和IP限制。刚好之前购买的亿牛云代理还没有过期,这里就详细的讲解下在爬虫程序里面添加IP的过程,详细的实现示例如下:

#! -*- encoding:utf-8 -*-


    import requests

    import random


    # 要访问的目标页面

    targetUrl = "http://httpbin.org/ip"


    # 要访问的目标HTTPS页面

    # targetUrl = "https://httpbin.org/ip"


    # 代理服务器(产品官网 www.16yun.cn)

    proxyHost = "t.16yun.cn"

    proxyPort = "31111"


    # 代理验证信息

    proxyUser = "username"

    proxyPass = "password"


    proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {

        "host" : proxyHost,

        "port" : proxyPort,

        "user" : proxyUser,

        "pass" : proxyPass,

    }


    # 设置 http和https访问都是用HTTP代理

    proxies = {

        "http"  : proxyMeta,

        "https" : proxyMeta,

    }



    #  设置IP切换头

    tunnel = random.randint(1,10000)

    headers = {"Proxy-Tunnel": str(tunnel)}




    resp = requests.get(targetUrl, proxies=proxies, headers=headers)


    print resp.status_code

    print resp.text

步骤四:从爬虫程序中将数据一一对应的取出,并做后期的清洗,整理,分析操作后才能得到干净的数据。


评论