python3实现高并发爬取笔趣阁小说

本文介绍了如何使用 Python3 的 requests 和 threading 库实现高并发爬取笔趣阁网站上的小说数据,包括设置请求头、处理反爬策略、数据解析及存储等关键步骤,旨在提升爬虫效率。
摘要由CSDN通过智能技术生成
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import asyncio
import aiohttp
import re
import aiofiles
import time
# time是同步的,不要进入异步代码
LOOP = asyncio.get_event_loop()
#
HEADERS = {"Cookie": "__cdnuid=efaf90be3615c5e79e92852f271af777; jieqiVisitTime=jieqiArticlesearchTime%3D1534652382",
           "Referer": "http://www.biquge.com.tw/",
           "User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Mobile Safari/537.36"}

BASE_URL = "http://www.biquge.com.tw"

async def get_html(session, url):
    try:
        # 6.31415926535 66.30009722709656秒  ----左边是时间没有控制好的错误例子,好像重复执行了500多次
        async with session.get(url=url, timeout=10.31415926535) as resp:
            # 这个timeout非常重要,笔趣阁的服务器是有点渣,他既不拒绝你又不答应你,时间自己好好考虑
            # 我这里采用的是回调,可以说,如果不懂异常处理和回调,你不要看了
            if not resp.status // 100 == 2:
                print(resp.status)
                print("爬取", url, "出现错误")
            else:
                resp.encoding = 'gb18030'
                text = await resp.text()
                return text
    except Exception as e:
      
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值