直接上代码,都是很简单的一些demo,爬取的网站,都没有什么加密措施,所以应该不涉及违法数据,哈哈

1.爬取网页数据(aiohttp+sanic+scrapy+xpath解析html)

from sanic import Sanic
import aiohttp  # 导入aiohttp
from sanic.response import text
from scrapy import Selector  # 导入html解析模块

app = Sanic(__name__)

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"}


async def getsource(url):
    conn = aiohttp.TCPConnector(verify_ssl=False)  # 防止ssl报错
    async with aiohttp.ClientSession(connector=conn) as session:  # 创建session
        async with session.get(url, headers=headers, timeout=0) as req:  # 获得请求
            if req.status == 200:  # 判断请求码
                source = await req.text()  # 使用await关键字获取返回结果

                print('爬取的文章')
                sel = Selector(text=source)
                l = []
                a = sel.xpath('//ol[@class="breadcrumb"]/li[@class="active"]/text()').extract_first()
                b = sel.xpath('//ul[@class="nav nav-tabs"]/li[@class="active"]/a/text()').extract_first()
                c = sel.xpath('//span[@class="course-view"]/text()').extract_first()
                l.append((a, b, c))
                print(l)
            else:
                print("访问失败")


@app.route('/')
async def sanic_hello(request):
    myloop = request.app.loop  # 创建事件循环
    # == event_loop = asyncio.get_event_loop()
    for i in range(1, 10):
        url = "https://edu.hellobi.com/course/{}"
        try:
            myloop.create_task(getsource(url.format(i)))  # 添加任务到事件循环
        except Exception as e:
            pass
    return text('爬取成功')


if __name__ == "__main__":
    #用gunicorn部署命令
    # gunicorn api_pachong:app --bind 0.0.0.0:8090 --workers=4 --worker-class sanic.worker.GunicornWorker
    app.run(host='127.0.0.1', port=8090, workers=8)


#""
爬取的文章
[('微软 BI 实战入门系列【持续更新中】', '课程概览', '1742 人学习')]
爬取的文章
[('MS SQL数据库入门及初级BI教程', '课程概览', '1667 人学习')]
爬取的文章
[('IBM Cognos 中级视频教程 【模型和报表教程】', '课程概览', '1227 人学习')]
爬取的文章
[('咖啡姐 BIEE 11G 精品入门视频教程【新手必看】', '课程概览', '2626 人学习')]
爬取的文章
[('BI基础知识漫谈【献给所以热爱商业智能的朋友】', '课程概览', '2398 人学习')]
爬取的文章
[('数据仓库精品教程【特点,数据仓库和ETL设计思想、架构(自上而下、自下而上)、常用概念】', '课程概览', '3856 人学习')]
爬取的文章
[('IBM Cognos 初级教程 【入门必学】', '课程概览', '2520 人学习')]
爬取的文章
[('Oracle BIEE 提高视频教程【时间序列函数,多表头制作,数据同步】', '课程概览', '1151 人学习')]
爬取的文章
[('微软商业智能实战入门及提高视频教程', '课程概览', '249 人学习')]
"""
翻页爬去简单网页

相关文章:

  • 2021-12-29
  • 2021-12-05
  • 2021-09-15
  • 2022-12-23
  • 2021-11-18
  • 2021-12-14
  • 2021-12-10
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
  • 2021-05-21
  • 2022-12-23
  • 2022-12-23
  • 2021-07-13
相关资源
相似解决方案