|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第一个是使用selenium+Chromedriver,在浏览器加载数据后,获得渲染好的网页代码,使用正则匹配图片链接
第二个是使用Chrom的开发者工具,找到获得数据的网址,然后在数据里面找到需要的数据,然后下载
第一个:
- from selenium import webdriver
- from bs4 import BeautifulSoup
- import time
- import re
- import os
- import urllib.request
- driver=webdriver.Chrome("C://Program Files (x86)//Google//Chrome//Application//chromedriver_win32//chromedriver.exe")
- #这里使用的Chromedriver,可以在网上下载与自己版本相同的,32位的就可以了;也可以下载PhantomJS,是一个无界面浏览器
- driver.get("http://wuxia.qq.com/web201503/media-wallpaper.shtml")
- time.sleep(3)
- #在进入页面需要等待一段时间,等浏览器渲染好,这样就可以直接获得加载好的图片地址了
- os.chdir("F://Python36//项目//图片//天涯明月刀")
- html=BeautifulSoup(driver.page_source,"html.parser")
- pic_url=html.findAll("a",{"href":re.compile("//game.+1920x1024\.jpg")})
- #使用正则匹配图片链接
- count=0
- for each in pic_url:
- count+=1
- each_url="http:"+each["href"]
- pic_name=str(count)+".jpg"
- urllib.request.urlretrieve(each_url,pic_name)
- print("第 %s 张图片下载成功"%count)
复制代码
第二个:
- import requests
- import json
- from urllib.request import urlretrieve
- import os
- url="http://game.gtimg.cn/images/wuxia/web201501/datas/gamedata_wallpaper.js?v=0.07262971159255338"
- #这个url是网页从服务器获得的数据的真实地址,可以使用谷歌浏览器的开发者模式找到
- res=requests.get(url)
- res=res.content.decode("gbk")
- res=res.split('"lists":',1)[1]
- res=res.rsplit("}",1)[0]
- res=res.replace("//"," ")
- #这里获得地址貌似不是json格式的,我只能用最蠢的方法获得里面的元素
- res=eval(res)
- #将数据从字符串格式转为列表
- os.chdir("F://Python36//项目//图片//天涯明月刀")
- count=0
- for each in res:
- count+=1
- pic_name=str(count)+".jpg"
- try:
- urlretrieve("http://game.gtimg.cn/images/wuxia/picture/wallpaper/"+each["dlpic"][2][1],pic_name)
- #这里的图片地址可以在网页源文件下面的js知道,加上我们从服务器返回的数据就是图片的真实地址了
- except IndexError:
- urlretrieve("http://game.gtimg.cn/images/wuxia/picture/wallpaper/"+each["dlpic"][1][1],pic_name)
- print("第%s张图片 下载成功"%count)
复制代码 |
|