python提高爬虫速度_【Python】如何提高爬虫爬取的速度?

写了个简单的协程爬虫爬取B站用户信息,代码如下:

import requests

import re

import json

import datetime

import asyncio

def get_info(uid):

url_info = "http://space.bilibili.com/ajax/member/GetInfo?mid=" #基本信息

uid = str(uid)

return loop.run_in_executor(None, requests.get, url_info+uid)

async def user_info(num):

"""

uid = mid

info

'birthday': 生日

'regtime': 注册时间

'attentions': 关注

'spacesta': ?

'attention': 关注人数

'toutu': ?

'sex': 性别

'fans': 粉丝数

'friend': 关注?

'level_info': 等级

'place': 地理位置

'face': 头像

'name': 昵称

'sign': 简介

"""

for uid in range(num, num+10):

info = await get_info(uid)

info = json.loads(info.text)["data"]

try:

# print(datetime.datetime.fromtimestamp(info['regtime']))

print("ok", uid)

print(info)

except UnicodeEncodeError as e:

print("UnicodeEncodeError:", e)

except TypeError:

print(info)

loop = asyncio.get_event_loop()

try:

loop.run_until_complete(asyncio.wait([user_info(x) for x in range(1, 1000, 10)]))

except Exception as e:

print("Error:", e)

爬取1000条需要45秒左右,这样需要爬20天才能爬完。有没有什么办法提高爬取的速度?

回答

用scrapy

分布式爬虫或者开多个进程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的Python爬虫爬取网页数据并解析数据的教程: 1. 确定目标网站和要爬取的信息 首先,需要确定要爬取的网站和要提取的信息。可以使用Python的requests库向网站发送HTTP请求获取HTML源代码,并使用BeautifulSoup库解析HTML文档获取目标数据。 例如,我们要爬取CSDN博客的文章标题和链接,可以先打开CSDN博客主页,右键查看网页源代码,找到文章标题和链接所在的HTML标签。 2. 发送HTTP请求获取HTML源代码 接下来,使用Python的requests库向网站发送HTTP请求,获取HTML源代码。 ``` import requests url = 'https://blog.csdn.net/' response = requests.get(url) html = response.text ``` 3. 解析HTML文档获取目标数据 使用BeautifulSoup库解析HTML文档,获取目标数据。 ``` from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'html.parser') titles = soup.find_all('div', class_='title') for title in titles: link = title.find('a').get('href') title_text = title.find('a').text.strip() print(title_text, link) ``` 上述代码中,通过`find_all`方法找到所有class属性为"title"的div标签,然后在每个div标签中找到第一个a标签,获取链接和标题文本。 4. 完整代码 ``` import requests from bs4 import BeautifulSoup url = 'https://blog.csdn.net/' response = requests.get(url) html = response.text soup = BeautifulSoup(html, 'html.parser') titles = soup.find_all('div', class_='title') for title in titles: link = title.find('a').get('href') title_text = title.find('a').text.strip() print(title_text, link) ``` 以上就是一个简单的Python爬虫爬取网页数据并解析数据的教程。需要注意的是,在爬取网站数据时要遵守网站的爬虫协议,避免被网站封禁IP。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值