爬取豆瓣读书的详细步骤

2022-10-09 16:19:02 浏览数 (1)

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

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

步骤二:获取网页信息且解析网页,我爬取的是网页是:https://book.douban.com/

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

代码语言:javascript复制
#! -*- 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

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

0 人点赞