2 weixin 40148208 weixin_40148208 于 2017.09.12 20:26 提问

Python爬虫 急求大神帮忙 万分感谢

我用Python爬虫 爬取网页 爬出来获取特定数据 为什么大部分显示null 而且每次执行一次 数据就会增加一些 到底是代码问题还是网页问题 求大神指点代码下:
def get_content(self, html): #获取一个网页的内容
div_list = html.xpath("//div[contains(@class,'listtyle')]")
item_list = []
for div in div_list:
for b in range(1,19):
food_img= div.xpath("./div[@class='listtyle1'][b]/a[@class='big']/img[@class='img']/@src")
food_img=food_img[0] if len(food_img)>0 else None

            food_name = div.xpath("./div[@class='listtyle1'][b]/a[@class='big']/div[@class='i_w']/div[@class='i']/div[@class='c1']/strong/text()")
            food_name = food_name[0] if len(food_name)>0 else None
            food_effect=div.xpath("./div[@class='listtyle1'][b]/a[@class='big']/strong[@class='gx']/span/text()")
            food_effect = food_effect[0]  if len(food_effect)>0 else None
            food_time=div.xpath("./div[@class='listtyle1'][b]/a[@class='big']/div[@class='i_w']/div[@class='i']/div[@class='c2']/ul/li[@class='li1']/text()")                
            food_time = food_time[0] if len(food_time)>0 else None
            food_taste=div.xpath("./div[@class='listtyle1'][b]/a[@class='big']/div[@class='i_w']/div[@class='i']/div[@class='c2']/ul/li[@class='li2']/text()")
            food_taste = food_taste[0] if len(food_taste)>0 else None
            food_commentnum_likenum=div.xpath("./div[@class='listtyle1'][b]/a[@class='big']/div[@class='i_w']/div[@class='i']/div[@class='c1']/span/text()")
            food_commentnum_likenum = food_commentnum_likenum[0] if len(food_commentnum_likenum)>0 else None


            item=dict(

                food_img1=food_img,
                food_name1=food_name,
                food_effect1=food_effect,
                food_time1=food_time,
                food_taste1=food_taste,
                food_commentnum_likenum1=food_commentnum_likenum,
            )
            item_list.append(item)
    return item_list                

2个回答

oyljerry
oyljerry   Ds   Rxr 2017.09.13 09:50

你对应的网页可能是用ajax等方式异步刷新数据的,所以你的爬虫获取的时候,数据还没有返回,就是null

weixin_40148208
weixin_40148208 这是网址 http://www.meishij.net/china-food/caixi/shancicai/?&page=1
2 个月之前 回复
weixin_40148208
weixin_40148208 一个网页中 每个元素 b 不同 是从1到18 但是这样写 每次出来都是null 如果去掉第二个for循环,把[b]改为[‘{}’]则出来每一页的第一个 其他都为null
2 个月之前 回复
weixin_40148208
weixin_40148208 获取数据的代码:
2 个月之前 回复
Jemila
Jemila   2017.09.13 10:42

代码也没放上来,网页也不说哪个,那怎么看?

Csdn user default icon
上传中...
上传图片
插入图片