安利一个python协程爬虫

python协程爬虫

准备工作:

安装:
pip install asyncio
pip install aiphttp
引入:
import re
import time
import asyncio
import aiohttp

需要安装两个异步的两个模块

第一步:

#链接生成器,我这里是生成了50条链接
arr = []
if __name__ == '__main__':
    for i in range(1, 50):
        url=f'https://bbs.tiepi.top/forum-9-{i}.html'#一个论坛网站
        arr.extend({url})
    asyncio.run(main(arr))
print(arr)

在这里插入图片描述
第二步:

async def main(urls):
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
    }
    #类似线程线程启动器,他这个是创建了很多异步协程
    tasks = [fetch_html(url,headers) for url in urls]
    #然后通过await asyncio.gather去启动
    html_content = await asyncio.gather(*tasks)
    for content in html_content:
        content = re.findall(r'<title>(.*?)</title>', content)
        print(content)  # 输出网页内容

第三步:

async def fetch_html(url,headers):
    async with aiohttp.ClientSession() as session:
        async with session.get(url=url,headers=headers) as response:
            return await response.text()
  #一个异步的网络请求
  每一个异步执行需要用到的代码前面需要加上async 
  异步等待响应的开头需要await response.text()

展示一下效果:

正常网络请求:
单线正常网络请求50页拿到数据花了61秒!
在这里插入图片描述

协程的网络请求:
单线程协程网络请求50页拿到数据花了4秒!
在这里插入图片描述
同样单线程,协程快了将近20倍!

协程完整代码:

import re
import time
import asyncio
import aiohttp
starts = time.time()#开始记时
async def fetch_html(url,headers):
    async with aiohttp.ClientSession() as session:
        async with session.get(url=url,headers=headers) as response:
            return await response.text()


async def main(urls):
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
    }
    tasks = [fetch_html(url,headers) for url in urls]
    html_content = await asyncio.gather(*tasks)
    for content in html_content:
        content = re.findall(r'<title>(.*?)</title>', content)
        print(content)  # 输出网页内容


arr = []
if __name__ == '__main__':
    for i in range(1, 50):
        url=f'https://bbs.tiepi.top/forum-9-{i}.html'
        arr.extend({url})
    asyncio.run(main(arr))
print(arr)

end = time.time()#结束计时
print("执行:",end - starts,"秒")

Python语料清洗练习是一种通过使用Python编程语言对文本数据进行处理和清理的练习。在实际应用中,数据通常需要进行清洗和预处理,以便于后续的分析和建模工作。Python语料清洗练习通常包括以下几个步骤: 1. 导入文本数据:使用Python的文件操作功能,将需要清洗的文本数据导入到Python环境中。 2. 数据清洗:根据具体需求,使用Python的字符串处理和正则表达式等功能,对文本数据进行清洗。这包括去除无关字符、标点符号和特殊符号,统一大小写,去除停用词等。 3. 分词:使用Python的自然语言处理工具,对文本数据进行分词处理。这可以将文本数据切割成一个个独立的词语或短语,方便后续的处理和分析。 4. 去除停用词:使用Python的停用词库,去除文本中的常用词语,如“的”、“是”等。这些常用词语对文本的分析和建模没有太大的帮助,可以在清洗过程中将它们去除。 5. 词性标注:使用Python的自然语言处理工具,对分词后的文本数据进行词性标注。这可以为每个词语添加它们在语法和语义上的词性,方便后续的分析和处理。 6. 数据处理:根据具体需求,对清洗后的文本数据进行进一步的处理。这包括统计词频、计算语义相似度、构建词向量等。 通过进行Python语料清洗练习,我们可以熟悉Python的文本处理功能,提高对文本数据的理解和分析能力。同时,清洗后的数据可以为后续的机器学习和自然语言处理任务提供更好的数据基础。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [小学生开始学Python,最接近AI的编程语言:安利一波Python书单](https://blog.csdn.net/weixin_39616379/article/details/111435920)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值