1、什么是Ajax技术
Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术.通俗理解就是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。(百度解释)
我们也可以通过网站查看,网页链接为https://www.pexels.com/
我们在想继续查看网站中的图片时,往下拉发现图片才加载,然而他的网页地址并没有变,这就是Ajax技术。或许有些人还不能理解,我们也可以查看拉勾网,搜寻关键字查找岗位信息后,换页他的Url不变,这也是Ajax动态加载,下面为爬取图片信息,然后存在本地。
2、代码
import re
import requests
from bs4 import BeautifulSoup
headers = {
'Accept': 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'
}
urls = ["https://www.pexels.com/?page={}".format(str(i) for i in range(1, 4))] #生成异步加载的url
photos = []
for url in urls:
res = requests.get(url, headers)
soup = BeautifulSoup(res.text, "lxml")
imgs = soup.select("body > div.l-container.home-page > div > article > a > img")
for img in imgs:
photo = img.get('src')
photos.append(photo)
path = "D:\\Python_Test\\pexlels照片\\"
for item in photos:
data = requests.get(item, headers)
photo_name = re.findall("\/\d+\/(.*?)\?auto", item)
if photo_name:
fp = open(path + photo_name[0], "wb")
fp.write(data.content)
fp.close()