python爬虫爬去网页爬到一半爬不动为什么

爬取网页爬到一半就直接断掉了,并且也不知道错达摩哪里,qiu解
1

img


2

img


3

img

报错贴一下

报错贴一下

img

img

img


报错图,也太多了吧看不太懂˃ʍ˂

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7801133
  • 这篇博客你也可以参考下:手把手QQ机器人制作教程,根据官方接口进行开发,基于Python语言制作的详细教程(更新中)
  • 除此之外, 这篇博客: 【选课脚本】用Python网页爬虫来进行选(qiang)课 (更新至v1.0.8)中的 0x01 环境依赖 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • Python 3.x
    • 如果你想看 html 的结果,最好有个浏览器

    Requirement.txt

    beautifulsoup4>=4.6.0
    bs4>=0.0.1
    configparser>=3.5.0
    lxml>=3.7.3
    requests>=2.13.0
    tqdm>=4.11.2
    
  • 您还可以看一下 李飞老师的Python数据分析与爬虫课程中的 常用正则表达式及正则匹配实例:提取数字、匹配电话号码及QQ号小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    针对爬虫程序在爬取到一半时经常突然断掉的问题,可能的原因包括网络连接问题、服务器负载过高、程序代码逻辑漏洞等。建议按照以下步骤逐一排查解决:

    1.检查网络连接:可以使用ping命令检查目标网站是否可达,也可以在程序代码中增加重试机制,当网络连接断开时,等待一段时间后重新连接。

    2.服务器负载过高:建议分时段爬取,避免在服务器高峰期进行爬取操作,也可以增加程序实例数量来分担负载压力。

    3.程序代码逻辑漏洞:可以通过添加日志功能,输出每一步操作的结果来查找问题所在。同时,建议对程序进行重构,按照模块化的方式进行开发,使程序逻辑清晰明了,易于排查问题。

    针对Python中对列表中的数字进行排序并找出从左到右第一个丢失的数据的问题,可以参考以下代码:

    def find_missing_num(num_list):
        # 转换字符型为整型
        num_list = list(map(int, num_list))
        # 排序
        num_list.sort()
        # 遍历排序后的列表,比较相邻两个元素差是否为1,如果不是,则返回缺失的数字
        for i in range(len(num_list) - 1):
            if num_list[i+1] - num_list[i] != 1:
                return num_list[i] + 1
        # 如果列表中不存在缺失的数字,返回列表中最大的数加1
        return num_list[-1] + 1
    
    # 测试用例
    num_list = ['1', '2', '3', '5', '6', '7']
    num_list1 = ['1', '2', '4', '5', '6', '7']
    num_list2 = ['1', '2', '3', '4', '6', '7']
    
    print(find_missing_num(num_list)) #4
    print(find_missing_num(num_list1)) #3
    print(find_missing_num(num_list2)) #5
    

    针对要求编写程序,在完成上一题功能的基础上,考虑输入非法情况,如果输入的数不合法,要求让其重新输入,直至输入一个分数的问题,可以参考以下代码:

    def get_score():
        while True:
            score = input("请输入一个分数:")
            # 检查输入是否为数字
            if not score.isdigit():
                print("输入错误,请重新输入")
            else:
                return int(score)
    
    # 测试用例
    get_score()
    

    以上代码中,使用while循环及输入验证机制,确保用户输入的为数字,如果输入不合法则提示重新输入。如果输入合法则返回结果,结束while循环。

    对于Python七款开源框架的优劣比较,可以根据实际业务需求进行选择。一般来说,Django适用于大而全的应用,适合快速搭建管理后台等功能;Flask更为灵活,适用于对框架自由度有较高要求,需求不太复杂的小型应用;Scrapy适用于数据挖掘、监测和自动化测试等需求;Tornado适用于需要处理异步网络细节的应用程序,适合开发Web scraper或bot等应用;Web2py适用于开发敏捷快速的Web应用,具有可移植性的数据驱动应用;Weppy适用于从简单到适度复杂的应用程序;Bottle适用于包含在其他项目中或快速交付REST API等小型项目。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^