塞在背包里的人 发表于 2020-4-20 22:53:57

为什么只能爬取第一页的图片就停滞了

import os
baseurl = "http://sc.chinaz.com/tupian/renwutupian"
headers = {
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
# 获取整页数据
for i in range(1,30):
    if i ==1:
      url=baseurl+'.html'
    else:
      url=baseurl+'_'+str(i)+'.html'
    response = requests.get(url=url,headers=headers)
    page_text = response.text
    print(url)
    # 获取网页中的图片
    path = os.getcwd()
    tree = etree.HTML(page_text)
    img_list= tree.xpath('//*[@id="container"]/div')
    for i in img_list:
      img = i.xpath('./div/a/img/@src2')# 图片懒加载,src2为实际地址,这个在有些地方需要注意
      img_url = "".join(img)
      img_data = requests.get(url=img_url,headers=headers).content# 生成图片
      # 生成图片名称
      img_name = img_url.split('/')[-1]# 以图片链接最后的部分作为名字
      print(img_name)
         # 图片存储的路径
      img_path = path+'\\mm\\'+img_name
      with open(img_path,'wb')as fp:
            fp.write(img_data)
            print(img_name,"下载成功")

酒醉三分醒 发表于 2020-4-21 08:53:16

试试把28行的写入模式 'wb' 改成 'ab' ,即追加写入。
'wb' 模式会让你循环一次覆盖一次之前的文件,所以实际上你获取的应该是最后一页的图片。

兢兢 发表于 2020-4-21 14:21:04

动态加载网页,只有一页
页: [1]
查看完整版本: 为什么只能爬取第一页的图片就停滞了