折腾:
【已解决】汽车之家车型车系数据:解决部分车型基本参数字段个数不一致问题
期间,发现虽然参数配置的数据没啥问题,但是好像第一批数据中 carBrandId就是空的:
所以需要去搞清楚,是否正常
去调试看看
看到代码中:
好像是只有 new layout html中才有:
elif isNewLayoutHtml: carModelDict["carBrandId"] = InfoDict["brandid"] # 181
旧的
if isOldLayoutHtml:
没有
所以需要去加上
发现旧页面中无法找到brandId的值
只能从之前入口找
后来发现是:
从之前的brand的name的a元素中就可以提取到
# <div><a href="//car.autohome.com.cn/price/brand-33.html#pvareaid=2042362">奥迪</a></div> carBrandUrl = brandADoc["href"] print("carBrandUrl=%s" % carBrandUrl) carBrandId = "" foundBrandId = re.search("brand-(?P<carBrandId>\d+)\.html", carBrandUrl) print("foundBrandId=%s" % foundBrandId) if foundBrandId: carBrandId = foundBrandId.group("carBrandId") print("carBrandId=%s" % carBrandId) # 33
去调试看看
语法错了点,改为:
# <div><a href="//car.autohome.com.cn/price/brand-33.html#pvareaid=2042362">奥迪</a></div> brandADoc = dtDoc.find('div a') print("brandADoc=%s" % brandADoc) # <a href="https://car.autohome.com.cn/price/brand-63.html#pvareaid=2042362">日产</a> carBrandName = brandADoc.text() print("carBrandName=%s" % carBrandName) carBrandUrl = brandADoc.attr["href"] print("carBrandUrl=%s" % carBrandUrl) carBrandId = "" foundBrandId = re.search("brand-(?P<carBrandId>\d+)\.html", carBrandUrl) # print("foundBrandId=%s" % foundBrandId) if foundBrandId: carBrandId = foundBrandId.group("carBrandId") print("carBrandId=%s" % carBrandId) # 63
即可获取到:
然后传递到后面
即可。
转载请注明:在路上 » 【已解决】汽车之家车型车系数据:carBrandId是空