吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1968|回复: 13
收起左侧

[求助] Python使用asyncio+aiohttp异步爬取 的问题

[复制链接]
wolaileo 发表于 2019-11-16 22:19
本帖最后由 wolaileo 于 2019-11-18 00:21 编辑

最近遇上了一个问题,
在使用asyncio+aiohttp异步爬取 网页内容时,

有些链接爬取不到内容,
如图
QQ截图20191116221356.jpg
对于爬取失败的网页如何继续爬取呢?

我已经控制了访问量了,依然如何
sem = asyncio.Semaphore(3) # 信号量,控制协程数,防止爬的过快
请各位指点指点


补充
··································
[Python] 纯文本查看 复制代码
def main_get_html():
    loop = asyncio.get_event_loop()           # 获取事件循环
    tasks = [asyncio.ensure_future(get_html(url)) for url in urlss()]  # 把所有任务放到一个列表中
    loop.run_until_complete(asyncio.wait(tasks)) # 激活协程

    url_lst_unrequested = []
    for url in urlss:
        if url not in url_lst_successed or url_lst_failed:
            url_lst_unrequested.append(url)
    while len(url_lst_unrequested) > 0:
        tasks_unrequested = [asyncio.ensure_future(get_info(url)) for url in url_lst_unrequested]
        loop.run_until_complete(asyncio.wait(tasks_unrequested))
        url_lst_unrequested = []
        for url in urlss:
            if url not in url_lst_successed:
                url_lst_unrequested.append(url)   
    loop.close()  # 关闭事件循环


提示错误

Traceback (most recent call last):
  File "G:\python\he.py", line 107, in <module>
    main_get_html()
  File "G:\python\he.py", line 89, in main_get_html
    for url in urlss:
TypeError: 'function' object is not iterable

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| wolaileo 发表于 2019-11-16 22:27
对于异常或 timeout 的访问,希望自动尝试,最多尝试三次
swjtu_ray 发表于 2019-11-16 22:48
判断爬下来的data尺寸是不是合适,关键字进行匹配//
 楼主| wolaileo 发表于 2019-11-16 23:20
swjtu_ray 发表于 2019-11-16 22:48
判断爬下来的data尺寸是不是合适,关键字进行匹配//

感觉 通过 判断 页面是否为200 还好些吧?
神一样了 发表于 2019-11-16 23:38
代码不贴出来鬼知道你怎么写的有什么问题
swjtu_ray 发表于 2019-11-16 23:40
wolaileo 发表于 2019-11-16 23:20
感觉 通过 判断 页面是否为200 还好些吧?

你都知道还问个锤子==
 楼主| wolaileo 发表于 2019-11-16 23:52
本帖最后由 wolaileo 于 2019-11-16 23:53 编辑
swjtu_ray 发表于 2019-11-16 23:40
你都知道还问个锤子==

是因为我 搞不明白要如何写。。。想得到,因水平问题写不出来,哎
 楼主| wolaileo 发表于 2019-11-16 23:53
神一样了 发表于 2019-11-16 23:38
代码不贴出来鬼知道你怎么写的有什么问题

刚才 我在百度,有人说  异步 是会丢失链接的。。搞不明白了
swjtu_ray 发表于 2019-11-17 00:02
wolaileo 发表于 2019-11-16 23:52
是因为我 搞不明白要如何写。。。想得到,因水平问题写不出来,哎

不太了解你是怎么实现的;
按照我的理解,可以判断爬取失败的,再加到爬取队列里面呀,重新爬;
可以再记录一下失败的访问列表,超过最大次数的就不再重新爬了
神一样了 发表于 2019-11-17 00:14
扯淡,丢个精度都没人敢用 这东西又不是玄学
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 00:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表