折腾:
【已解决】汽车之家车型车系数据:解决部分车型基本参数字段个数不一致问题
期间,发现虽然参数配置的数据没啥问题,但是好像第一批数据中 carBrandId就是空的:

所以需要去搞清楚,是否正常
去调试看看

看到代码中:
好像是只有 new layout html中才有:
1 2 | elif isNewLayoutHtml: carModelDict[ "carBrandId" ] = InfoDict[ "brandid" ] # 181 |
旧的
if isOldLayoutHtml:
没有
所以需要去加上
发现旧页面中无法找到brandId的值
只能从之前入口找
后来发现是:
从之前的brand的name的a元素中就可以提取到
1 2 3 4 5 6 7 8 9 | # <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 |
去调试看看
语法错了点,改为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # <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是空