code_xiaoLaji 2021-11-14 12:27 采纳率: 85.7%
浏览 53
已结题

爬虫报错,headers也加了为啥还报错呀?

img

img


前面infos的find_all没有报错,print(infos)可以成功,但到下面爬具体内容的时候就显示AttributeError: 'NoneType' object has no attribute 'find_all'​,请问该怎么解决呀

  • 写回答

2条回答 默认 最新

  • Syb呀呀 2021-11-19 14:06
    关注

    观察了一下此网站,是他的地理位置那一栏的标签顺序有变化,所以find未找到对应的值,导致解析失败无数据,建议换一种解析库,代码如下:

    import time
    import requests
    from lxml import etree
    headers={'User-Agent':'',
             'Referer':'https://dl.58.com/zufang/pg2/'} # headers参数自己补充一下,通过测试,只需要Referer和请求头即可
    for u in range(1,4):
        url='https://dl.58.com/zufang/pg2/pn'+str(u)+'/'
        print(url)
        res=requests.get(url,headers=headers,proxies=test_IP.proxies)
        dom=etree.HTML(res.text)
        title=dom.xpath("//div[@class='list-box']/ul[@class='house-list']/li/div[@class='des']/h2/a/text()")
        area=dom.xpath("//div[@class='list-box']/ul[@class='house-list']/li/div[@class='des']/p[@class='room']/text()")
        position_1=dom.xpath("//div[@class='list-box']/ul[@class='house-list']/li/div[@class='des']/p/a[1]/text()")
        position_2=dom.xpath("//div[@class='list-box']/ul[@class='house-list']/li/div[@class='des']/p/a[2]/text()")
        price=dom.xpath("//div[@class='money']/b/text()")
        for i in range(len(title)):
            print('标题为:',title[i].strip())
            print('面积为:',area[i].strip().replace(' ',''))
            print('位置为:',position_1[i]+'\t'+position_2[i])
            print('价格为:',str(price[i])+'元/每月')
            print('----------分割线----------')
        time.sleep(2)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月28日
  • 已采纳回答 11月20日
  • 创建了问题 11月14日

悬赏问题

  • ¥15 蓝桥oj3931,请问我错在哪里
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染