爬取一个网站图片

本来想爬取 淘宝网站 的图片 的 但是后面发现 是异步加载 就是随便找了一个 图片网张爬取

from urllib import request
import re
import random
def url(i):
    url='https://sc.chinaz.com/tupian/shanshuifengjing_'+str(i)+'.html'
    return url
#这是构建 url  可以爬取   多个页数的数据

agents=["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36",
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14",
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)",
"Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
]
def ua():
    a=random.choice(agents)    #随机选取一个agents列表中的一个元素  
    headers={"User-Agent":a}
    return headers
#这是随机选取一个用户代理池中的一个来进行爬取 
#用户代理池    可能可以防止  通过同一个use_agent  多次爬取一个网站   的弊端吧 
for i in range(2,4):
    rep=request.Request(url(i),headers=ua())
    resp=request.urlopen(rep)
    text=resp.read().decode('utf-8')
    pat='<img src2="//(.*?)"'
    txt=re.compile(pat,re.S).findall(text)
    for j in range(0,len(txt)):
        link="http://"+txt[j]
        localfile='F:\\一个项目\\一个项目\\图片爬取\\'+'第'+str(i)+'页'+'第'+str(j)+'张'+'.jpg'
        request.urlretrieve(link,filename=localfile)
        print('成功爬取第'+str(i)+'页'+'第'+str(j)+'张')
    print('------')

还是小白 写得有些简陋了,欢迎各位大佬指导。

上一篇:scrapy-Redis分布式爬虫案例----阳光问政平台爬虫


下一篇:UA池