今天心血来潮想去爬取下小说网站的数据,起因是因为以前很喜欢看起点网上面的小说,但是很多好看的小说都要钱,然而我又不想付费看小说,然后胖友就推介了笔趣网。这也是一个看小说网站,这里面有很多起点中文网的免费小说。但是呢这个网站只能在线浏览,不支持小说打包下载,伤心呀。 所以本次爬取呢,就是从该网站爬取并保存一个名为《东宫》的小说。还有就是这只是作为爬虫学习的一个例子,大家还是要支持正版的哈。 采集任何网站的数据,我们都要能突破网站的反爬虫机制,预防网站封ip,这样才能高效的完成任务,之前分享过,需要大量采集数据的时候,需要用高匿名代理进行辅助,还需要控制爬虫访问的速度,这样就可以大大降低网站封IP的几率。如果想要了解更多更多爬虫采集的问题,可以关注 https://www.16yun.cn/具体实现如下: #! -*- encoding:utf-8 -*- import base64 import sys import random PY3 = sys.version_info[0] >= 3 def base64ify(bytes_or_str): if PY3 and isinstance(bytes_or_str, str): input_bytes = bytes_or_str.encode('utf8') else: input_bytes = bytes_or_str output_bytes = base64.urlsafe_b64encode(input_bytes) if PY3: return output_bytes.decode('ascii') else: return output_bytes class ProxyMiddleware(object): def process_request(self, request, spider): # 代理服务器(产品官网 www.16yun.cn) proxyHost = "t.16yun.cn" proxyPort = "31111" # 代理验证信息 proxyUser = "16NVEMMF" proxyPass = "172329 " request.meta['proxy'] = "http://{0}:{1}".format(proxyHost,proxyPort) # 添加验证头 encoded_user_pass = base64ify(proxyUser + ":" + proxyPass) request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass # 设置IP切换头(根据需求) tunnel = random.randint(1,10000) request.headers['Proxy-Tunnel'] = str(tunnel)以上就是本文的全部内容,希望对大家的学习有所帮助。
|