请问现在common里的value找不到相应的汽车品牌了,应该怎么找呢

请问现在common里的value找不到相应的汽车品牌了,应该怎么找呢

而且网页内文本内容几乎没有所要找的汽车品牌的信息

https://img1.sycdn.imooc.com//climg/62d4eeae0982a70f04870595.jpg

1
2
3
4
5
6
7
8
9
10
11
12
13
import requests
 
 
url="https://mapi.guazi.com/car-source/carList/pcList?osv=Unknown&minor={}&sourceType=&ec_buy_car_list_ab=&location_city=&district_id=&tag=-1&license_date=&auto_type=&driving_type=&gearbox=&road_haul=&air_displacement=&emission=&car_color=&guobie=&bright_spot_config=&seat=&fuel_type=&order=7&priceRange=0,-1&tag_types=&diff_city=&intention_options=&initialPriceRange=&monthlyPriceRange=&transfer_num=&car_year=&carid_qigangshu=&carid_jinqixingshi=&cheliangjibie=&page=1&pageSize=20&city_filter=12&city=12&guazi_city=12&qpres=562084751130124288&platfromSource=wap&versionId=0.0.0.0&sourceFrom=wap&deviceId=b3739738-67cf-4717-8771-de994bc63a6a"
header={
    "client-time""1658075729",
    "verify-token""ce1b9dfd413fc620cb2a4bad9d8c378e",
    "user-agent""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36",
}
 
response=requests.get(url=url,headers=header)
with open("brands_dazhong.txt","w",encoding="utf-8") as f:
    f.write(response.text)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import scrapy
import json
 
class GuaziSpider(scrapy.Spider):
    name = 'guazi'
    allowed_domains = ['guazi.com']
    # start_urls = ['http://guazi.com/']
    def start_requests(self):
       #发送列表页请求
        with open("brands.txt","r",encoding="utf-8") as f:
            brands_data=f.read()
        brands_list=json.loads(brands_data).get("data").get("hot_keywords")
        for brand in brands_list:
            url="https://mapi.guazi.com/car-source/carList/pcList?osv=Unknown&minor={}&sourceType=&ec_buy_car_list_ab=&location_city=&district_id=&tag=-1&license_date=&auto_type=&driving_type=&gearbox=&road_haul=&air_displacement=&emission=&car_color=&guobie=&bright_spot_config=&seat=&fuel_type=&order=7&priceRange=0,-1&tag_types=&diff_city=&intention_options=&initialPriceRange=&monthlyPriceRange=&transfer_num=&car_year=&carid_qigangshu=&carid_jinqixingshi=&cheliangjibie=&page=1&pageSize=20&city_filter=12&city=12&guazi_city=12&qpres=562070876095696896&platfromSource=wap&versionId=0.0.0.0&sourceFrom=wap&deviceId=82c54aeb-cfe4-414a-aabb-c7c4dadb4c1b".format(brand.get("filterValue"))
            yield  scrapy.Request(url=url,callback=self.parse)
            #仅发送第一页请求,限定在一个品牌中的
            break
 
 
    def parse(self, response):
        pass


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕凡 2022-07-18 14:24:47

同学,你好!

网站近期发生改动,已经联系老师更新课程,同学也可以在异步请求的list中找到所有的品牌信息,再进行爬取,如下图:

https://img1.sycdn.imooc.com//climg/62d4fbe809e3937619200551.jpg

https://img1.sycdn.imooc.com//climg/62d4fc9209adbf6010830593.jpg

祝学习愉快~

  • 提问者 破邪返瞳 #1

    https://img1.sycdn.imooc.com//climg/62d522950992200611480045.jpg

    https://img1.sycdn.imooc.com//climg/62d522ac096bf80114000171.jpg

    这个地方是不能连着get吗?那应该怎么处理这么多层的呢

    2022-07-18 17:07:29
  • 好帮手慕凡 回复 提问者 破邪返瞳 #2

    同学,你好!

    0和1等数字是下标,不是作为一个key值使用,同学可以参考以下代码

    1
    2
    brands_list=json.loads(brands_data)
    brands_list["data"][1]["filterValue"]["common"]["A"][0]

    祝学习愉快~

    2022-07-18 17:29:17
  • 同学,你好!

    0和1等数字是下标,不是作为一个key值使用,同学可以参考以下代码

    1
    2
    brands_list=json.loads(brands_data)
    brands_list["data"][1]["filterValue"]["common"]["A"][0]

    祝学习愉快~

    2022-07-18 17:34:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
4.入门主流框架Scrapy与爬虫项目实战
  • 参与学习           人
  • 提交作业       107    份
  • 解答问题       1672    个

Python最广为人知的应用就是爬虫了,有趣且酷的爬虫技能并没有那么遥远,本阶段带你学会利用主流Scrapy框架完成爬取招聘网站和二手车网站的项目实战。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码