python3在采集这个页面时为何取到了html但当取某一个元素时取不到?

import requests
from bs4 import BeautifulSoup


if __name__ == "__main__":

    headers = {    
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36 QQBrowser/4.4.106.400',    
    'Connection': 'keep-alive',       
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'}

    html=requests.get('https://car.autohome.com.cn/price/brand-33.html',headers=headers)
    html.encoding = 'gb2312'
    soup = BeautifulSoup(html.text,'lxml')
    #
    xx=soup.find('h2','class_=fn-left name') 
    yy=xx.find('a')
    print(yy['href'])  #出错,如何能取到这个h2中的汽车品牌名称呢?
    '''
    <h2 class="fn-left name"><a href="/price/brand-33.html">奥迪</a></h2>
    '''```
    
芜湖不芜
浏览 601回答 3
3回答

ITMISS

用"html.parser"代替掉"lxml"就可以了。感觉bs4和lxml配合出问题了。

缥缈止盈

你要取具体哪个位置的信息,没有找到你要的<h2 class="fn-left name">标签信息,你截个图指定一下位置。

忽然笑

大概是你find的问题,cars = soup.findAll('h2', {'class': 'fn-left name'}),然后遍历cars。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python