littleMatchsaleGirl
littleMatchsaleGirl
采纳率50%
2017-10-12 06:49 浏览 9.1k

python beautifulsoup find_all方法返回空列表

网页代码如下:
图片说明
我的python代码:

cards2 = soup.find_all('div',class_='product ')

class的属性值我是复制粘贴过来的,find其他的div上没有问题,可是就是这个总是给我返回空列表

图片说明
网址为:https://list.tmall.com/search_product.htm?q=%CA%D6%BB%FA

请大神们帮忙看看是怎么回事

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答 默认 最新

  • oyljerry oyljerry 2017-10-12 08:03

    这个div的内容是不是ajax异步加载的。这样你查找的时候,可能数据还没有填充进来

    点赞 2 评论 复制链接分享
  • weixin_43925027 weixin_43925027 2019-01-04 11:26

    用class找不了,换个别的比如data-atp就行了,我也不知道原理,希望有人知道了能解答一下。

    点赞 1 评论 复制链接分享
  • Gemini_6 Gemini_6 2019-05-24 16:56

    1、class="product " 你复制的内容不对,里面还有空格,把整个双引号全复制
    2、with req.urlopen(request) as respones:
    data=respones.read()
    data=open(data,'w',encoding='utf-8')#这个为了防止解码问题

    3、 root=bs4.BeautifulSoup(data,'html.parser')
    print(root)#解码问题解决
    4、后面就正常爬取
    card=root.find_all('div',class_="product ")
    print(card)
    问题都这么久了不知道能帮上忙

    点赞 1 评论 复制链接分享
  • HHTNAN IT界的小小小学生 2017-10-12 08:40

    #!usr/bin/env python
    #_*_ coding:utf-8 *
    import requests
    from bs4 import BeautifulSoup
    import lxml
    url='https://list.tmall.com/search_product.htm?q=%CA%D6%BB%FA'
    html=requests.get(url)
    res=html.text
    print(res)
    soup=BeautifulSoup(res,"lxml")
    cards2 = soup.find_all('div',attrs={'class':"product "})
    print('------------------------')
    print(cards2)

    看不了你的网页:打开是登录窗口,你的网站是天猫网,很有可能ajax异步加载,

    点赞 评论 复制链接分享

相关推荐