折腾:
【已解决】汽车之家车型车系数据:解决部分车型基本参数字段个数不一致问题
期间,发现虽然参数配置的数据没啥问题,但是好像第一批数据中 carBrandId就是空的:
![](https://www.crifan.com/files/pic/uploads/2021/03/a52392f543dd4cd7a71d1c275b5ec0d9.jpg)
所以需要去搞清楚,是否正常
去调试看看
![](https://www.crifan.com/files/pic/uploads/2021/03/e7f348b7e191413f883e4bfbf2b99a35.jpg)
看到代码中:
好像是只有 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
即可获取到:
![](https://www.crifan.com/files/pic/uploads/2021/03/575fa66e49984fc9bdc0319ed616f5e8.jpg)
然后传递到后面
![](https://www.crifan.com/files/pic/uploads/2021/03/704f3281c2434b17a6b064e0d00ee685.jpg)
即可。
转载请注明:在路上 » 【已解决】汽车之家车型车系数据:carBrandId是空