python 2.7安装,python2.7下载安装教程
环境python2模块请求,urllib,BeautifulSoup,time,json。我爬的图是一个妹子图。
网站:http://tu.duowan.com/m/meinv
1.第一步是分析网页。
通过f12分析网页,可以找到那组图片的网址。点击进入后,查看网页源代码,没有图片的网址。那他们一定藏在某个地方。我找到一个网站:=1510133209395“http://tu . duo wan . com/index . PHP?”r=show/getByGallery/GID=135626=1510133209395
点开之后发现是一个json文件,unicode代码,很多网址都是以。jpg。我点开网址,发现是我要找的图片。
目标:获得json
2.我点开了另外几组图片,发现了规律。
=1510133414653 " http://tu . duo wan . com/index . PHP?r=show/getByGallery/GID=135610=1510133414653
=1510133209395 " http://tu . duo wan . com/index . PHP?r=show/getByGallery/GID=135626=1510133209395
我不知道这个网址是怎么来的,但是通过观察,我发现前面有很多相同的部分,除了gid和后面的参数不一样。gid是封面图实际URL后面的数字,后面是时间戳。至于怎么找,是从其他地方听说的。
3.使用requests模块向这个json URL发出请求,获取json的文本,处理json中的字符串,并提取我需要的部分。
对于范围内的I(0,len(hjson[ picinfo ]):img _ name=hjson[ picinfo ][I][ title ]# title img _ URL=hjson[ picinfo ][I][ URL ]# img的url 4
因为很多文件不在。jpg格式,我想得到文件后缀。
Pix=img _ url.split (/) [-1]。拆分(.)[-1] #获取后缀5。创建文件保存路径
这里使用的是操作系统模块。
首先创建一个图表文件夹。
Gallery _ name=hjson[ gallery _ title ]# gallery文件夹打印gallery_name #打印os.mkdir(gallery_name) #创建gallery文件夹的完整代码
导入urllibimport请求来自bs4导入美汤导入时间导入JSON user _ agent= Mozilla/5.0(X11;UbuntuLinux x86 _ 64RV:56.0)Gecko/2010 01 01 Firefox/56.0 headers={ User-Agent :User _ Agent } def get _ html(URL):# URL= http://tu。多万。 data=requests。获取(URL,headers=headers)数据。编码= utf-8 汤=漂亮的ul汤(数据。文本, html。parser )href _ list=[]for duo in soup。find _ all(class _= tags-content=None:href _ list。追加(em。a . get( href ))return get _ GID(href _ list)def get _ GID(href _ list):GID _ list=[]for href in href _ list:# print href pat=re。编译(r \ d )#打印GID。group()GID _ list。追加(GID。group())# print GID _ list return get _ jso(GID _ list)def get _ JSR=show/getByGallery/GID=135823 _=1510117947713 # 1510118493946 jso _ URL _ list=[]for GID _ list:jso _ URL=http://tu.duowan.com/index.php?r=show/getByGallery/GID=% s _=% s %(GID,int(time。time()* 1000))jso _ URL _ list。append(jso _ URL)return get _ jso _ data(jso _ URL _ list)def get _ jso _ data(jso _ URL _ list):datas _ list=[]for jso _ URL _ list:datas=requests。get(jso _ URL,headers=headers)数据。编码= utf-8 #打印数据拆分(.)[-1] img_path=%s.%s%(img_name,pix)local=OS。路径。join(gallery _ name,img _ path)urllib。URL检索(img _ URL,local)打印img _ path first _ URL= http://tu。多万。com/m/meinv get _ html(first _ URL)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。