为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

芜湖不芜 2019-02-17 13:35:36
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> '''```
查看完整描述

3 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

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

查看完整回答
反对 回复 2019-03-01
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-03-01
?
忽然笑

TA贡献1806条经验 获得超5个赞

大概是你find的问题,cars = soup.findAll('h2', {'class': 'fn-left name'}),然后遍历cars

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 600 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信