長い時間Pythonの構文を読むために他には何も、グラブ写真にスクリプトを記述するために、関数は、それが達成した、比較的簡単ではありません。
写真を含むすべてのページのホームアドレスを取得し1。
2. 11は、家庭用のオープンのアドレスを取得するには、次のアドレスで、すべての画像を単一のページを取得します。
3.次のimgディレクトリにすべての画像を含む単一のページをダウンロードしてください。
次のページがある場合は、ページ1をフリップパラメータ、再帰的なダウンロードイメージの検索4.。
注:多くの場合、サーバー圧力をデータをつかむしないでください、インターネットユーザーの品質を持って行ってください。ネットワークからのデータは、侵害をお知らせください。
サンプルを実行します。
[画像のダンプはチェーンが失敗し、発信局は、(IMG-kkKe552n-1583931038668)直接アップロード(https://user-gold-cdn.xitu.io/2020/3/3ダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです/ 170a0b39b18e472c?= 2798&H W = 1832&F = PNG&S = 1517019)]
[画像のダンプはチェーンが失敗し、発信局は、(IMG-g7ToUa0b-1583931038669)直接アップロード(https://user-gold-cdn.xitu.io/2020/3/3ダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです/ 170a0b404251564d?)= 1832 = 2798&H&W = PNG&S = 1186006 F]
出典:
import os
import time
import urllib
import requests
import re
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36'
}
# 单页数据遍历
def getImages(img_url, page):
page_url = img_url
# 如果页码大于0,说明需要翻页,拼装页码
if page > 1:
page_url = img_url + '/' + str(page)
print(f'加载翻页数据:{page_url}')
response = requests.get(page_url, headers=headers)
html = response.text
# urls = re.findall('<img alt=".*?" class="alignnone size-full" data-src=".*?"', html)
try:
# 判断是否有下一页
next_page = '<i class="iconfont icon-arrowright"></i>'
# 如果有下一页,页码+1
if re.search(next_page, html).group():
page = page + 1
else:
page = 1
except AttributeError:
page = 1
urls = re.findall('<a href=".*?" alt=".*?" title=".*?">', html)
print(f'页面全部A标签:{urls}')
for url in urls:
item_content = re.search('<a href="(.*)" alt.*?title="(.*)"', url)
name = item_content.group(1)[:]
title = item_content.group(2)[:]
name = name.split('&')[0]
name = urllib.parse.unquote(name)
print(f'处理后的名称:{name}')
time.sleep(5)
file_name = name.split('/')[-1]
print(f'开始下载图片:{file_name}')
path = './imgs/' + title
img_path = path + '/' + file_name
# 存在相同图片,跳过此次下载
if os.path.exists(img_path):
print(f'重复图片,跳过下载:{file_name}')
continue
isExists = os.path.exists(path)
# 创建目录
if not isExists:
os.makedirs(path)
# 下载图片
response = requests.get(name, headers=headers)
with open(img_path, 'wb') as f:
f.write(response.content)
f.close()
if page > 1:
getImages(img_url, page)
response = requests.get('https://www.vmgirls.com', headers=headers)
print(response.request.headers)
html = response.text
print(response.text)
main_urls = re.findall('https://www.vmgirls.com/(\d.*).html', html)
main_urls = {}.fromkeys(main_urls).keys()
print('获取到资源页面:', main_urls)
# 取单页数据进行抓取
for url in main_urls:
full_url = 'https://www.vmgirls.com/' + url + '.html'
print(f'开始爬取:{full_url} 数据。')
getImages(full_url, 1)